我有这门课:
class Taxi {
Wheel myWheel[4];
public:
Taxi();
};
Wheel 是另一个类,包含:
class Wheel{
int radius,
tickness;
public:
Wheel(int,int);
};
现在,我要做的是在 Taxi 构造函数的初始化列表中初始化“myWheel[4]”,如下所示:
Taxi::Taxi () :Wheel[0](5,5), Wheel[1](3,3), Wheel[2](5,5), Wheel[3](3,3) {
cout << "Ctor of Taxi" << endl;
}
但它不起作用,我真的需要一些帮助, 谢谢:)
最佳答案
你的初始化列表应该是这样的
Taxi::Taxi () : myWheel { Wheel(5,5), Wheel(3,3), Wheel(5,5), Wheel(3,3)} {
cout << "Ctor of Taxi" << endl;
}
查看 LIVE DEMO
如果您没有符合当前 c++ 标准 (c++11) 的编译器,则无法在成员初始化列表中执行此操作。您必须在构造函数体内初始化数组元素:
Taxi::Taxi () {
cout << "Ctor of Taxi" << endl;
myWheel[0] = Wheel(5,5);
myWheel[1] = Wheel(3,3);
myWheel[2] = Wheel(5,5);
myWheel[3] = Wheel(3,3);
}
另请注意,您应该将 Wheel
设置为 nice class那么。
关于c++ - 在初始化列表c++中初始化类数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27360370/