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.