在构造函数中初始化成员变量时,可以使用大括号或括号通过以下两种不同方式进行操作:
class some_class {
some_class(): foo{<value>}, bar(<value>) {}
T foo;
T bar;
};
这两种初始化方法之间是否存在功能差异?如果是,我应该选择使用哪一种?
答案 0 :(得分:4)
取决于T
。例如[T = std::vector<int>]
,
foo{4, 5}
是一个包含2个项目(4和5)的容器,
而foo(42, 0)
是一个包含42个项目(值为0)的容器。
您可能会读到initialization,其中解释了不同类型的初始化以获取更多详细信息...