为作为类成员的对象数组立即调用的构造函数
Is the constructor called immediately for an array of objects as a member of the class?
class gene{
int ind;
gene() {
ind = 0;
}
}
class network {
gene g[10];
}
main() {
network n;
}
我应该为g数组中的每个对象调用构造函数吗,还是它会被自动调用?
e。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++中使用向量时,如何调用构造函数和析构函数
- C++:考虑但不调用构造函数的特殊性
- 对象实例化调用构造函数的次数太多
- 我使用向量来创建类对象列表.初始化向量时如何使用参数调用构造函数?
- C ++:通过大括号调用构造函数?
- 不能调用构造函数
- 赋值 boost::intrusive_ptr 而不调用构造函数?
- 在模板化类的构造函数中调用构造函数
- 如何为 std::vector 分配内存,然后稍后为某些元素调用构造函数?
- 为什么从另一个构造函数内部调用C++构造函数不修改类变量?
- 静态 std::map instatiation 在类的方法中调用构造函数吗?
- 有没有一种简单的方法可以在对象向量上调用构造函数?
- 我不明白在这个例子中什么时候调用构造函数
- 调用c++构造函数的不同方法
- 调用构造函数与将内联常量定义为默认参数
- 如何通过 Rust FFI 调用C++构造函数?
- "new"运算符是否总是调用构造函数?
- 无法调用构造函数
- 使用 "()" 调用构造函数不同于"{}"
- 确定是调用构造函数还是强制转换运算符的因素