Caja.h
#pragma once
class Caja
{
public:
explicit Caja(double tv = 1.0, double anv = 1.0, double alv = 1.0) :
m_Tam{ tv }, m_Ancho{ anv }, m_Alto{ alv } {}
//funcion para calcular el volumen del objeto caja
double volumen() const
{
return m_Tam * m_Ancho * m_Alto;
}
private:
double m_Tam;
double m_Ancho;
double m_Alto;
};
CajaJuguetes.h
#pragma once
#include <cstring>
#include "Caja.h"
class CajaJuguetes : public Caja
{
public:
char *m_Contenidos;
explicit CajaJuguetes(const char *str = "Juguetes") //Constructor
{
size_t tam{ strlen(str) + 1 };
m_Contenidos = new char[tam];
strcpy_s(m_Contenidos, tam, str);
}
CajaJuguetes(const CajaJuguetes &caja) = delete;
CajaJuguetes operator=(const CajaJuguetes &caja) = delete;
~CajaJuguetes() //Destructor
{
delete[] m_Contenidos;
}
};
Main.cpp
//Usando una funcion para heredar de la clase base
#include <iostream>
#include "CajaJuguetes.h"
using namespace std;
int main()
{
Caja miCaja{ 4.0, 3.0, 2.0 };
CajaJuguetes miCajaJuguetes;
CajaJuguetes miCajaLegos{"Lego"};
//muestra la cantidad de memoria que los objetos requiren
cout << "miCaja ocupa: " << sizeof miCaja
<< " bytes" << endl
<< "miCajaJuguetes ocupa: " << sizeof miCajaJuguetes
<< " bytes" << endl
<< "miCajaLegos ocupa: " << sizeof miCajaLegos
<< " bytes" << endl;
cout << "El volumen de miCajaLegos es: " << miCajaLegos.volumen() << endl;
system("pause");
return 0;
}
No hay comentarios:
Publicar un comentario