#c #oop #inheritance
#c #ооп #наследование
Вопрос:
Предположим, у меня есть два класса Mother и Daughter, где Daughter наследует публично от Mother . Теперь, если я хочу вызвать параметризованный конструктор дочернего элемента, как это будет происходить?
class Mother
{ int age;
public:
Mother(int a) {
age = a;
court << "Mother Paramterized constructor called!n " ;
}
};
class Daughter: public Mother
{
int height;
public:
Daughter(int h): Mother(x) {
height = h;
court << "Daughter parametrized constructor!n";
}
};
Определения классов будут такими, как указано выше (насколько я знаю), но как будет выполняться вызов дочернего параметризованного конструктора?
Комментарии:
1. Что находится
x
в вызове конструктора? Вы имеете в видуDaughter(int a, int h): Mother(a)
?2. Неправильно и неэффективно, как показано. Смотрите Комментарий выше, а также всегда используйте раздел инициализации буквально для всего, что вы можете.
Ответ №1:
Вы можете вызывать параметризованные конструкторы с помощью
class Mother {
int age;
public:
Mother(int a) : age(a) {
cout << "Mother Paramterized constructor called!n " ;
}
};
class Daughter: public Mother {
int height;
public:
Daughter(int a, int h): Mother(a), height(h) {
cout << "Daughter parametrized constructor!n";
}
};
int main() {
Daughter d(10, 150);
}
Вывод:
Mother Paramterized constructor called!
Daughter parametrized constructor!