如何为派生类创建构造函数? [复制]

Posted

技术标签:

【中文标题】如何为派生类创建构造函数? [复制]【英文标题】:How do I make a constructor for a derived class? [duplicate] 【发布时间】:2016-01-01 14:58:52 【问题描述】:

我正在尝试为派生类创建构造函数。这样做似乎不起作用:

#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"。以及构造函数继承是如何工作的?

【问题讨论】:

你使用成员初始化器列表。 【参考方案1】:

只需使用成员初始化器列表:

SecondClass(int x) : FirstClass(x) 

【讨论】:

哦...我在问问题之前尝试过,但是像SecondClass(int x) : FirstClass(int x)这样的错误方式,为什么那里不需要变量类型? @ĬnfernalSeraphím 因为它实际上已经输入并作为参数传递了。

以上是关于如何为派生类创建构造函数? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从派生类复制构造函数调用基类复制构造函数? [复制]

虚函数总结

C ++派生类构造函数[关闭]

阿里笔试题-派生类构造函数 创建顺序

C++创建派生类对象时,调用构造函数顺序

调用派生类的构造函数在基类的构造函数之前执行