我正在尝试为派生类创建构造函数。这样做似乎不起作用:
#include <iostream>
class FirstClass
{
public:
int X;
FirstClass(int x)
{
this->X = x;
}
int getXpow() { return pow(X, 2); }
};
class SecondClass : FirstClass
{
public:
SecondClass(int x)
{
FirstClass::FirstClass(X);
}
int getXpow() { return pow(X, 3); }
};
int main()
{
using namespace std;
FirstClass FCobj(3);
cout << FCobj.getXpow() << endl;
SecondClass SCobj(3);
cout << SCobj.getXpow() << endl;
system("pause");
return 0;
}
因为它在{
的第SecondClass(int x)
括号中说明了以下内容Error: no default constructor exists for class "FirstClass"
。构造函数继承如何工作?
答案 0 :(得分:1)
只需使用成员初始化列表:
SecondClass(int x) : FirstClass(x) {
}