Caja.h
#pragma once
class Caja
{
public:
double m_Tam;
double m_Ancho;
double m_Alto;
explicit Caja(double tv = 1.0, double anv = 1.0, double alv = 1.0) :
m_Tam{ tv }, m_Ancho{ anv }, m_Alto{ alv } {}
};
CajaJuguetes.h
#pragma once
#include <cstring>
#include "Caja.h"
class CajaJuguetes : 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
//Clases Derivadas
#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 tamanio de miCaja es: " << miCaja.m_Tam << endl;
miCaja.m_Tam = 10.0;
system("pause");
return 0;
}
No hay comentarios:
Publicar un comentario