Como cualquier otro tipo de data, podemos tener punteros a clases, punteros a punteros a clases, punteros a punteros a punteros a clases, etc. Veamos un ejemplo:
# include <iostream.h>
# include "Caja.h"
main()
{
Caja grande (20, 10, 30);
Caja *punteroACaja1;
Caja *punteorACaja2;
punteroACaja1 = new Caja;
punteroACaja2 = new Caja(1, 2, 3);
cout << "El volumen de la caja grande es " << grande.volumen() << '\n';
cout << "El nuevo volumen 2 es " << punteroACaja2 -> volumen() << '\n';
punteroACaja1 -> set (2, 4, 6);
cout << "El nuevo volumen 1 es " << punteroACaja1 -> volumen() << '\n';
delete punteroACaja1, punteroACaja2;
}
La salida de este programa será:
El volumen de la caja grande es 6000 El nuevo volumen 2 es 6 El nuevo volumen 1 es 48En este ejemplo:
punteroACaja1 -> volumen()
la siguiente sentencia:
(*punteroACaja1).volumen() ,
pero la notación -> es la que se suele utilizar.