C ++: herencia múltiple con polimorfismo
(perdone la pregunta novata de antemano)
Tengo 4 clases:
class Person {};
class Student : public Person {};
class Employee : public Person {};
class StudentEmployee : public Student, public Employee {};
EsencialmentePerson
es la clase base, que están directamente subclasificadas por ambosStudent
yEmployee
. StudentEmployee
emplea herencia múltiple para subclase tantoStudent
yEmployee
.
Person pat = Person("Pat");
Student sam = Student("Sam");
Employee em = Employee("Emily");
StudentEmployee sen = StudentEmployee("Sienna");
Person ppl[3] = {pat, sam, em};
//compile time error: ambiguous base class
//Person ppl[4] = {pat, sam, em, sen};
Cuando uso una matriz dePerson
, la clase base, puedo ponerPerson
y todas sus subclases dentro de esta matriz. Excepto porStudentEmployee
, dada la razón de la clase base ambigua.
Dado queStudentEmployee
está garantizado para tener todos los métodos y atributos dePerson
, esStudentEmployee
considerado una subclase de persona?
Salud
EDITAR: De manera preventiva, esta pregunta NO es la misma que cualquiera de las siguientes:
polimorfismo relaciona herencia
Herencia mucking polimorfismo en C ++?