gpt4 book ai didi

带有初始值设定项的 C++ 匿名类

转载 作者:行者123 更新时间:2023-11-30 00:51:33 24 4
gpt4 key购买 nike

基于这个问题(前段时间问过)

inline-object-instantiation-and-transformation-in-java

有没有办法在不使用构造函数的情况下在单行 C++ 中实例化、对象化和初始化它的成员?

在 java 中,根据链接:

JFrame aFrame = new JFrame();
aFrame.add(new JPanel() {{
setSize(100,100);
setLocation(50,50);
setBackground(Color.red);
}});

这可以用 c++ 以任何方式完成吗?

编辑:例如

class Foo{
public:
int test;
int test2;

};

int main(){
Foo foo(){{test=5 test2=4}}; //Like this
}

最佳答案

如果类是聚合(没有基类、非公共(public)成员、虚函数或用户声明的构造函数),那么您可以使用聚合初始化来初始化其成员:

struct thing {
int a,b,c;
};

thing t = {1,2,3};

否则,它只能由构造函数初始化。

关于带有初始值设定项的 C++ 匿名类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21290901/

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