Параметризованный конструктор, вызываемый в main в наследовании C

#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!