是否MyVec
正在创建两个?MyVec
在 的构造函数中的assinment 之前是否存在临时的、默认构造Foo
的?
struct Foo {
typedef std::vector<int> MyVec;
Foo () {
// determine how big the vector needs to be.
// .....
m_vec = MyVec(12);
}
MyVec m_vec;
};
我知道我可以使用指针来做到这一点。
struct Foo {
typedef std::vector<int> MyVec;
Foo () {
m_vec = new MyVec();
}
~Foo () {
delete m_vec;
}
MyVec * m_vec;
};
但如果可能的话,我想避免这种情况。
编辑:
我忘了提。我不能使用初始化列表,因为我需要在赋值之前在构造函数中做一些事情。