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?

Si es así, ¿por qué el compilador no me permite asignar un objeto a una variable del tipo de su superclase?Si no, porque no; ¿Y cuál sería la forma correcta de lograr esto?

Salud

EDITAR: De manera preventiva, esta pregunta NO es la misma que cualquiera de las siguientes:
polimorfismo relaciona herencia
Herencia mucking polimorfismo en C ++?

Respuestas a la pregunta(2)

Su respuesta a la pregunta