【发布时间】:2021-01-21 21:50:14
【问题描述】:
// Method One
class ClassName
{
public:
ClassName() : m_vecInts() {}
private:
std::vector<int> m_vecInts;
}
// Method Two
class ClassName
{
public:
ClassName() {} // do nothing
private:
std::vector<int> m_vecInts;
}
问题> 初始化类的vector成员变量的正确方法是什么? 我们必须初始化它吗?
【问题讨论】:
-
不,除非你想指定一个初始容量(或者初始化它的内容,你可以使用 C++11 中的初始化列表或 boost 的
list_of我 认为 )。 -
使用默认构造函数构造两种方式的向量,但首选第一种方式
-
如果你在初始化列表中根本没有提到它,默认的构造函数将被调用。否则,调用合适的构造函数(例如,也许你希望它有 100 个默认构造元素)。
标签: c++