【发布时间】:2019-11-21 13:49:31
【问题描述】:
如果我有一个声明 Class B 并实例化它的数组的类 A。
class A{
class B{
int x, y;
};
B arrB[10];
public:
A();
};
然后,我的问题是我想使用初始化列表来初始化 A 类中“arrB”的前两个对象:
A::A(): arrB[0](1, 2), arrB[1](3, 4) {}
但是编译器不接受。
我可以初始化数组的特定对象吗?如果是,怎么做?
谢谢
【问题讨论】:
-
你有理由在初始化列表中而不是在构造函数体中需要这个吗?
-
可能类似于:
arrB{{1,2},{3,4},{},{},{},{},{},{},{},{}}或arrB{{1,2},{3,4}}但是其余元素获取随机值并且它必须是结构或公共 x,y -
@KIIV:第二种形式很好;其余元素将被初始化为零
-
编译器抱怨第二种形式,因为它在询问其余数组项的初始化时出错
-
在有问题的编辑之后它将不起作用。它适用于
struct { int x, y; };
标签: c++ constructor initializer