如何为派生的 class 创建构造函数?
How do I make a constructor for a derived class?
我正在尝试为派生的 class 创建一个构造函数。这样做似乎行不通:
#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"
。构造函数继承是如何工作的?
只需使用成员初始化列表:
SecondClass(int x) : FirstClass(x) {
}
我正在尝试为派生的 class 创建一个构造函数。这样做似乎行不通:
#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"
。构造函数继承是如何工作的?
只需使用成员初始化列表:
SecondClass(int x) : FirstClass(x) {
}