抱歉,这是一个基本问题,但我找不到答案。我的问题是,在哪里可以找到有关如何使用列表初始化对象的文档。像下面吗?

class TestClass {
public:
    int a;
    int b;
};

然后初始化一个对象:
TestClass obj = TestClass{ 1, 2};
    cout << obj.a << " " << obj.b << endl;

我只找到this页面。

似乎是方法(2),但没有提到规则是什么。例如,a,b,...必须公开吗?我试过是否在它们之后添加一个私有(private)int c不能正常工作。对于struct,我了解,我的问题是关于类的。

谢谢

最佳答案

因此,我发现您可以使用C++中的该样式初始化任何东西,只要该东西是“聚合”即可。现在!什么是聚合?嗯,这取决于我们在谈论什么C++标准-C++ 11,C++ 14等。在C++11 aggregate initialization for classes with non-static member initializers的答案中 Eloquent 地讨论了这一点。我真的希望这会有所帮助。

关于c++ - 如何在C++中使用列表初始化对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44812726/

10-11 21:25
查看更多