2016-02-01 3 views
1

Может кто-нибудь сказать мне, почему этот код не работает? У меня есть: нет подходящей функции для вызова ошибки «Child :: Child()». Как правильно установить этот ребенок в защищенный раздел? :(Защищенный раздел: нет соответствующей функции для звонка

class Child 
{ 
protected: 
    int cAge; 
public: 
    Child(int c) 
    { 
     this->cAge=c; 
    } 
}; 

class Parent 
{ 
protected: 
    int pAge; 
    Child child; 
public: 
    Parent(int d) 
    { 
     this->pAge=d; 
    } 
}; 

int main() 
{ 

} 
+2

Вы должны инициализировать его в списке инициализаторов членов constuctors. –

ответ

3

Это не имеет ничего общего с «защищенной секции» Вы должны использовать member initializer list указать конструктор класса Child называться:.

class Parent 
{ 
// ... 
public: 
    Parent(int d) : child(d) 
//    ~~~~~~~~~~ 
    { 
     this->pAge=d; 
    } 
}; 

В противном случае, конструктор по умолчанию Child (т.е. Child::Child()) будет пытаться позвонить, но его не существует.

Смежные вопросы