2 回答
TA贡献1851条经验 获得超5个赞
应当叫对象数组,不叫类数组
首先构造函数必须要有无参构造函数
定以后对象数组后再调用初始化函数,初始化各对象
class abc{
//私有成员
public:
abc(){};
//其他函数
void init(int a,int b){
//初始化
};
}
int main()
{
abc a[10];
abc *b;
for(int i=0;i<10;i++){
a[i].init(i,1);
}
b=new abc[20];
for(int i=0;i<20;i++){
b[i].init(i,2);
}
//其他过程
}
只有有参构造函数,不能声明对象数组。必须有无参构造函数
即申明对象数组时,不能使用有参构造函数,初始化数据的传递
需要另外对每个数组元素单个调用初始化函数。这样也有好处每
个数组元素都可以有自己的初始化参数。
可以把有参构造函数完成的功能分开成不需要参数的部分和需要参数的部分
不需要参数的部分,写成无参构造函数,需要参数的部分写成初始化函数,
或者干脆无参构造函数写成空函数,什么都不干,把所有的任务交给初始化函数完成。
TA贡献1796条经验 获得超4个赞
对象数组的初始化函数可以有多个,函数名与对象名相同,属性应为public。不同的初始化函数以参数的数量、类型来区分,调用时应注意,避免使用模棱两可的参数导致调用时产生混乱。
如:初始化函数有两个,第一个的参数为(double a, int b),第二个函数的参数为(int a,double b)。调用时赋与的参数是(3,4),这样便会导致混乱,不知调用哪个初始函数了。
- 2 回答
- 0 关注
- 1259 浏览
添加回答
举报