数组作为成员变量时只有默认初始化,也就是无法传递参数。有两种变通方案:你可以把对象数组改成指针数组,或者把ClassB类的构造和初始化分开。 方案一: class ClassA{ private: ClassB* arrayOfObjectClassB[2]; public: ClassA(int i){ arrayObjectOfClassB[0]=new ClassB(i); arrayObjectOfClassB[1]=new ClassB(i); } }; 方案二: class ClassB{ private: int data; public: ClassB(int d):data(d){ } ClassB(){ } void Init(int d){data=d;} }; class ClassA{ private: ClassB arrayOfObjectClassB[2]; public: ClassA(int i){ arrayObjectOfClassB[0].Init(i); arrayObjectOfClassB[1].Init(i); } };
C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误
最新推荐文章于 2024-04-14 22:12:32 发布