带有默认构造函数的c++继承

c++ inheritance with default constructor

本文关键字:c++ 继承 构造函数 默认      更新时间:2023-10-16

我刚刚开始学习c++中的继承。我对此有疑问。下面是我的代码:

class employ
    {
    int xelfasi;
    string manqana;
public:
    employ(istream&is)
{
    is >> xelfasi >> manqana;
}
~employ()
{
}
};
class manager : public employ
{
int bonusi;
manager(int x)
{
    bonusi = x;
}

};

给了我一个错误:没有默认构造函数存在的类"雇用"。我真的不明白为什么我必须创建一个默认构造函数。由于

manager基本上包含一个employ(尽管是以继承的形式)。为了构造一个manager,你需要构造包含的employ。因此,您必须为它提供默认构造函数,或者通过调用现有的构造函数显式地构造它。

要显式地构造它,必须这样做:

manager(int x): employ(#some istream here#)
{}