#include #include class Persona { char *Nombre; char *Direccion; int Edad; public: Persona(char *, char *, int); ~Persona(); void DefineNombre(char *); void DefineDireccion(char *); void DefineEdad(int); char *DameNombre(void); char *DameDireccion(void); int DameEdad(void); void MuestraDatos(void); }; Persona::Persona(char *Nomb, char *Dir, int Ed) { Nombre = new char[strlen(Nomb)+1]; strcpy(Nombre,Nomb); Direccion = new char[strlen(Dir)+1]; strcpy(Direccion,Dir); Edad = Ed; } Persona::~Persona() { delete Nombre; delete Direccion; } void Persona::DefineNombre(char *Nomb) { Nombre = new char[strlen(Nomb)+1]; strcpy(Nombre,Nomb); } void Persona::DefineDireccion(char *Dir) { Direccion = new char[strlen(Dir)+1]; strcpy(Direccion,Dir); } void Persona::DefineEdad(int Ed) { Edad = Ed; } char *Persona::DameNombre(void) { return Nombre; } char *Persona::DameDireccion(void) { return Direccion; } int Persona::DameEdad(void) { return Edad; } void Persona::MuestraDatos(void) { cout << "Nombre : " << Nombre << endl; cout << "Dirección : " << Direccion << endl; cout << "Edad : " << Edad << endl; } class Alumno : public Persona { int Grado; char *Colegio; public: Alumno(char *, char *, int, int, char *); ~Alumno(); void DefineGrado(int); void DefineColegio(char *); void MuestraDatos(void); //Redefinición ("Overriding") }; Alumno::Alumno(char *N, char *D, int E, int G, char * C) : Persona(N, D, E) { Grado = G; Colegio = new char[strlen(C)+1]; strcpy(Colegio,C); } Alumno::~Alumno() { delete Colegio; } void Alumno::DefineGrado(int G) { Grado = G; } void Alumno::DefineColegio(char * C) { Colegio = new char[strlen(C)+1]; strcpy(Colegio,C); } void Alumno::MuestraDatos(void) { cout << "Nombre : " << DameNombre() << endl; cout << "Dirección : " << DameDireccion() << endl; cout << "Edad : " << DameEdad() << endl; cout << "Grado : " << Grado << endl; cout << "Colegio : " << Colegio << endl; } void main (void) { char buff[30]; Persona P("Juan Lopez", "Av. ABC #123", 6); Alumno A("Maria Ruiz", "AV. XYZ #555", 7, 2,"El Buen Alumno"); P.MuestraDatos(); cout << endl; A.MuestraDatos(); } /*La ejecución de este programa muestra: Nombre : Juan Lopez Dirección : Av. ABC #123 Edad : 6 Nombre : María Ruiz Dirección : AV. XYZ #555 Edad : 7 Grado : 2 Colegio : El Buen Alumno */