#include <iostream.h>
class Caja {
double longitud, anchura, altura;
Caja *otraCaja;
public:
Caja(double dim1, double dim2, double dim3); //Constructor
double volumen(void);
void point_at_next(Caja *where_to_point);
Caja *get_next(void);
};
Caja::Caja(double dim1, double dim2, double dim3) //Constructor implementation
{
longitud = dim1;
anchura = dim2;
altura = dim3;
otraCaja = NULL;
}
double Caja::volumen(void)
{
return (longitud * anchura * altura);
}
// This method causes the pointer to point to the input parameter
void Caja::point_at_next(Caja *where_to_point)
{
otraCaja = where_to_point;
}
// This method returns the box the current one points to
Caja *Caja::get_next(void)
{
return otraCaja;
}
main()
{
Caja peque&ntidle;a(5, 4, 10), mediana (10, 6, 20), grande(20, 10, 30);
Caja *CajaPointer;
cout << "El volumen de la Caja pequeña es " << pequeña.volumen() << "\n";
cout << "El volumen de la Caja mediana es " << mediana.volumen() << "\n";
cout << "El volumen de la Caja grande es" << grande.volumen() << "\n";
pequeña.point_at_next(&mediana);
mediana.point_at_next(&grande);
CajaPointer = &pequeña;
CajaPointer = CajaPointer->get_next();
cout << "La Caja apuntada tiene volumen = " <<
CajaPointer->volumen() << "\n";
}
El resultado de la ejecución será :
El volumen de la Caja pequeña es 200 El volumen de la Caja mediana es 1200 El volumen de la Caja grande es 6000 La Caja apuntada tiene volumen = 1200
En este programa: