#include <iostream>
#include <cstring>
using namespace std;
class Persona {
public:
Persona(const char *n) { strcpy(nombre, n); }
virtual void Mostrar() const = 0;
protected:
char nombre[30];
};
class Empleado : public Persona {
public:
Empleado(const char *n, int s) : Persona(n), salario(s) {}
void Mostrar() const;
int LeeSalario() const { return salario; }
void ModificaSalario(int s) { salario = s; }
protected:
int salario;
};
void Empleado::Mostrar() const {
cout << "Empleado: " << nombre
<< ", Salario: " << salario
<< endl;
}
class Estudiante : public Persona {
public:
Estudiante(const char *n, float no) : Persona(n), nota(no) {}
void Mostrar() const;
float LeeNota() const { return nota; }
void ModificaNota(float no) { nota = no; }
protected:
float nota;
};
void Estudiante::Mostrar() const {
cout << "Estudiante: " << nombre
<< ", Nota: " << nota << endl;
}
int main() {
Persona *Pepito = new Empleado("Jose", 1000); // (1)
Persona *Pablito = new Estudiante("Pablo", 7.56);
Pepito->Mostrar();
Pablito->Mostrar();
delete Pepito;
delete Pablito;
return 0;
}