网站首页 > 物联资讯 > 技术分享

C++初始化列表问题

2016-09-28 00:00:00 广州睿丰德信息科技有限公司 阅读
睿丰德科技 专注RFID识别技术和条码识别技术与管理软件的集成项目。质量追溯系统、MES系统、金蝶与条码系统对接、用友与条码系统对接

C++初始化列表问题,类中有一个对象类型的数组成员变量,在初始化列表中初始化时报错“[]”操作符语法错误

 

class ClassA{
private ClassB arrayOfObjectClassB[2];
public ClassA(int i):arrayObjectOfClassB[0](i),arrayObjectOfClassB[1](i)
}
arrayObjectOfClassB[0](i)这儿有问题
 
初始化列表中,只能初始化 单个变量 或 类的对象,不能初始化数组
数组作为成员变量时只有默认初始化,也就是无法传递参数。有两种变通方案:你可以把对象数组改成指针数组,或者把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);
}
};
RFID管理系统集成商 RFID中间件 条码系统中间层 物联网软件集成