Вызов конструктора базового класса из класса – наследника
Как говорилось ранее при создании класса наследника сначала вызывается конструктор базового класса и лишь потом после создания базового класса вызывается конструктор класса наследника, ранее мы использовали конструктор без параметров (конструктор по умолчанию) для базового класса, но мы можем вызывать и произвольный конструктор
Для этого в базовом классе мы должны создать какой-либо конструктор, например для класса Person:
Person(string Name)
{
this->Name=Name;
this->age= new unsigned int (18); //создание переменной в динамической памяти
}
А в классе наследнике написать:
public:
student(string Name, uint course) : Person(Name)
{
this->course=course;
}
Теперь в конструктор класса наследника мы передаем 2 поля Имя и курс, и поле Имя передаем к конструктор класса Person.
Теперь при вызове:
student c_Student("Oleg",1);
PrintInfo(&c_Student);
мы получим данные Имя 18лет и 1 курс.
За счет вызова конструктора базового класса Person(string Name) и записи полей класса.