-
Notifications
You must be signed in to change notification settings - Fork 0
/
herenciaMul2.cpp
45 lines (38 loc) · 1 KB
/
herenciaMul2.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cstring>
using namespace std;
class Persona {
public:
Persona(char *n) { strcpy(nombre, n); }
const char *LeeNombre() const { return nombre; }
protected:
char nombre[30];
};
class Empleado : virtual public Persona {
public:
Empleado(char *n, int s) : Persona(n), salario(s) {}
int LeeSalario() const { return salario; }
void ModificaSalario(int s) { salario = s; }
protected:
int salario;
};
class Estudiante : virtual public Persona {
public:
Estudiante(char *n, float no) : Persona(n), nota(no) {}
float LeeNota() const { return nota; }
void ModificaNota(float no) { nota = no; }
protected:
float nota;
};
class Becario : public Empleado, public Estudiante {
public:
Becario(char *n, int s, float no) :
Empleado(n, s), Estudiante(n, no), Persona(n) {} // (1)
};
int main() {
Becario Fulanito("Fulano", 1000, 7);
cout << Fulanito.LeeNombre() << ","
<< Fulanito.LeeSalario() << ","
<< Fulanito.LeeNota() << endl;
return 0;
}