class gene{
int ind;
gene() {
ind = 0;
}
}
class network {
gene g[10];
}
main() {
network n;
}
我应该为 g 数组中的每个对象调用构造函数,还是自动调用它?
例如,我是否应该按如下方式更改网络类:
class network {
gene g[10];
network() {
for(int i = 0; i < 10; i++)
g[i] = gene();
}
}
最佳答案
在你的例子中,因为 gene
有一个非平凡的默认构造函数,数组的每个元素都将为你默认构造。即,不,您的更改是不必要的。
如果您的数组的底层类型是 POD 类型,您将需要手动初始化元素。但是,您这样做的方式并不理想;你会想使用值初始化来代替:
class network {
somePodType x[10];
public:
network() : x() { }
};
关于c++ - 是否立即为对象数组调用构造函数作为类的成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8234173/