gpt4 book ai didi

c++ - 从子类中调用父类(super class)

转载 作者:太空宇宙 更新时间:2023-11-04 16:28:40 41 4
gpt4 key购买 nike

在下面的情况下,如何才能在 SubClass 的构造函数中调用 SuperClass 的参数化构造函数?

class SuperClass {

int superMember;

SuperClass( int superMember ) {
this->superMember = superMember;
};

virtual void doStuff() = 0;
};

class SubClass : public SuperClass {

int subMember;

SubClass( int superMember, int subMember ) {
this->subMember = subMember;
SuperClass( superMember );
};

void doStuff() {
//...
};
};

SuperClass 是否应该有一个构造函数(假设它是抽象的),或者我应该将成员初始化代码移动到一个单独的函数中,比如说 init( ... )SuperClass 中?在这种情况下,我将如何从 SubClass 中调用此函数?

最佳答案

调用 SubClass 的初始化列表中的 SuperClass 构造函数:

class SubClass : public SuperClass {
int subMember;

// Made constructor 'public'.
public:
SubClass(int a_superMember, int a_subMember) : SuperClass(a_superMember),
subMember(a_subMember) {}
};

即使 SuperClass 是抽象的,它仍然需要一个构造函数,在这种情况下初始化 superMember

SuperClass 中,构造函数必须对 SubClass 可见:publicprotected:

class SuperClass {

int superMember;

public: // or protected:
SuperClass( int superMember ) {
this->superMember = superMember;
};

virtual void doStuff() = 0;
};

关于c++ - 从子类中调用父类(super class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9500419/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com