Modifiquemos la clase Caja para que incluya un puntero a una variable entera como atributo privado.
#include <iostream.h>
class Caja {
double longitud, anchura, altura;
int *point;
public:
Caja(double dim1, double dim2, double dim3, int valorAlmacenado);
~Caja();
double volumen(void) {return longitud * anchura * altura;} // Inline
int getValor(void) {return *point;} // Inline
};
//Implementation del constructor
Caja::Caja(double dim1, double dim2, double dim3, int valorAlmacenado)
{
longitud = dim1;
anchura = dim2;
altura = dim3;
point = new int;
*point = valorAlmacenado;
}
Caja::~Caja(void) //Destructor
{
delete point;
}
main()
{
Caja pequeñ(5, 4, 10, 1), mediana (10, 6, 20, 2), grande(20, 10, 30, 3);
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";
cout << "El valor almacenado en la caja pequeña es " <<
pequeña.getValor() << "\n";
cout << "El valor almacenado en la caja mediana es" <<
mediana.get_valor() << "\n";
cout << "El valor almacenado en la caja grande es " <<
grande.get_valor() << "\n";
}
El resultado de la ejecución será:
El volumen de la caja pequeña es 200 El volumen de la caja mediana es es 1200 El volumen de la caja grande es 6000 El valor almacenado en la caja pequeña es 1 El valor almacenado en la caja mediana es 2 El valor almacenado en la caja grande es 3
p = new int [4];
en el destructor la liberarímos de la siguiente forma:
delete [] p;