【发布时间】:2014-03-07 17:39:58
【问题描述】:
我正在做这个具有 B 向量的 A 类。我在 A 类的构造函数上初始化向量(我不确定这是否是正确的方法,但它可以编译)。除此之外,我遇到了一个问题,因为我不希望在初始化向量时使用 B() 的默认构造函数来初始化自己,因为这让我做一个 for 循环来设置我想要的值。如果向量位置为 NULL 或大小为 0 就可以了;
class B{
int _t;
public:
B(){ _t = 1; }
B(int t) : _t(t){}
};
class A{
std::vector<B> _b;
public:
A(int size): _b(size){
for(int i = 0; i < size; i++){
_b[i].setNumber(i);
}
};
int main() {
int n = 3;
A _a(n);
return 0;
}
【问题讨论】:
-
如果一个零大小的向量是“好的”,那么不要调整它的大小。不要把 anything 放在初始化列表中,你会得到你想要的;一个空向量。