Holder 2


C language

#include <iostream>
#include <string.h>

class Humano{
    private:
        char nombre[30]; //atributo
        int edad;       //atributo
    public:
        Humano(const char* n, int e);
        void hablar();
    friend class Estudiante;
};

class Estudiante{
    private:
        Humano persona;
        int codigo;
        char carrera[30];
    public:
        Estudiante(const char* c, int cod, const char* n, int e);
        void mostrarDatos();
};

int main()
{  
    Estudiante juan("Ingenieria",1234,"Juan",27);
    juan.mostrarDatos();
    return 0;
}

void Estudiante::mostrarDatos(){
            std::cout<<"Soy "<<persona.nombre<<" y tengo "<<persona.edad<<"años"<<"\n";
            
        }
        
Estudiante::Estudiante(const char* c, int cod, const char* n, int e):persona(n,e){
            strcpy(carrera,c);
            codigo = cod;
        }

Humano::Humano(const char* n, int e){ // Método constructor
            strcpy(nombre,n);
            edad = e;
        }

void Humano::hablar(){  //método
            std::cout<<"Hola soy "<<nombre<<"\n";
        }