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();
}
}
答案 0 :(得分:7)
在你的情况下,因为gene
有一个非平凡的默认构造函数,所以数组的每个元素都将默认为你构造。即,不,你的改变是不必要的。
在您的数组的基础类型是POD类型的情况下,您将需要手动初始化元素。但是,你这样做的方式并不理想;您可能希望使用 value-initialization :
class network {
somePodType x[10];
public:
network() : x() { }
};