为了账号安全,请及时绑定邮箱和手机立即绑定

如何定义类数组 c++

如何定义类数组 c++

C++
一只名叫tom的猫 2018-07-29 13:13:34
构造函数有多个参数如果只有有参数的构造函数是不是就不能构造对象数组?
查看完整描述

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);
}
//其他过程
}
只有有参构造函数,不能声明对象数组。必须有无参构造函数
即申明对象数组时,不能使用有参构造函数,初始化数据的传递
需要另外对每个数组元素单个调用初始化函数。这样也有好处每
个数组元素都可以有自己的初始化参数。

可以把有参构造函数完成的功能分开成不需要参数的部分和需要参数的部分
不需要参数的部分,写成无参构造函数,需要参数的部分写成初始化函数,
或者干脆无参构造函数写成空函数,什么都不干,把所有的任务交给初始化函数完成。

查看完整回答
反对 回复 2018-08-01
?
SMILET

TA贡献1796条经验 获得超4个赞

对象数组的初始化函数可以有多个,函数名与对象名相同,属性应为public。不同的初始化函数以参数的数量、类型来区分,调用时应注意,避免使用模棱两可的参数导致调用时产生混乱。
如:初始化函数有两个,第一个的参数为(double a, int b),第二个函数的参数为(int a,double b)。调用时赋与的参数是(3,4),这样便会导致混乱,不知调用哪个初始函数了。

查看完整回答
反对 回复 2018-08-01
  • 2 回答
  • 0 关注
  • 1259 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信