用花括号或括号初始化成员变量

时间:2020-01-28 22:08:33

标签: c++ c++11

在构造函数中初始化成员变量时,可以使用大括号或括号通过以下两种不同方式进行操作:

class some_class {

some_class(): foo{<value>}, bar(<value>) {}

T foo;
T bar;
};

这两种初始化方法之间是否存在功能差异?如果是,我应该选择使用哪一种?

1 个答案:

答案 0 :(得分:4)

取决于T。例如[T = std::vector<int>]

foo{4, 5}是一个包含2个项目(4和5)的容器,

foo(42, 0)是一个包含42个项目(值为0)的容器。

您可能会读到initialization,其中解释了不同类型的初始化以获取更多详细信息...