有人可以告诉我为什么这段代码不起作用?我有:没有匹配函数来调用'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()
{
}
答案 0 :(得分:3)
与“受保护的部分”无关。您应该使用member initializer list来指定要调用的类Child
的构造函数:
class Parent
{
// ...
public:
Parent(int d) : child(d)
// ~~~~~~~~~~
{
this->pAge=d;
}
};
否则,将尝试调用Child
的默认构造函数(即Child::Child()
),但它不存在。