gpt4 book ai didi

c++ - 如何在继承类之前初始化成员变量

转载 作者:行者123 更新时间:2023-12-04 11:58:32 25 4
gpt4 key购买 nike

我正在尝试创建一个需要首先初始化成员变量的类。我知道为什么会发生这种情况,但是有没有办法解决这个问题?
当前打印订单:
第二
第一的
想要的打印订单:
第一的
第二

#include <iostream>

struct A {
A() {
std::cout << "first" << '\n';
}
};

struct B {
B() {
std::cout << "second" << '\n';
}
};

struct C : public B {

C() : a(), B() {

}

A a;

};

int main() {

C c;

return 0;
}

最佳答案

B 之前,将需要首先初始化的成员粘贴到结构中并从该结构中私下继承.

struct A {
A() { std::cout << "first" << '\n'; }
};

struct B {
B() { std::cout << "second" << '\n'; }
};

struct Members { A a; };

struct C : private Members, public B {
C() : Members(), B() {}
};

int main() {
C c;
}
这样做的缺点是无法避免将“成员结构”暴露给外界,但这在实践中应该不成问题。

关于c++ - 如何在继承类之前初始化成员变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67987495/

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