C ++: herança múltipla com polimorfismo
(perdoe a pergunta noob com antecedência)
Eu tenho 4 aulas:
class Person {};
class Student : public Person {};
class Employee : public Person {};
class StudentEmployee : public Student, public Employee {};
EssencialmentePerson
é a classe base, diretamente subclassificada por ambosStudent
eEmployee
. StudentEmployee
emprega herança múltipla para subclasse de ambosStudent
eEmployee
.
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};
Quando eu uso uma matriz dePerson
, a classe base, eu posso colocarPerson
e todas as suas subclasses dentro dessa matriz. Exceto porStudentEmployee
, dada a razão da classe base ambígua.
Dado queStudentEmployee
é garantido que todos os métodos e atributos dePerson
, éStudentEmployee
considerado uma subclasse de Pessoa?
Felicidades
EDIT: Preemptively, esta pergunta não é o mesmo que um dos seguintes:
polimorfismo relaciona herança
Herança destruindo polimorfismo em C ++?