猿问

如何定义类数组 c++

构造函数有多个参数
如果只有有参数的构造函数是不是就不能构造对象数组?

一只名叫tom的猫
浏览 1260回答 2
2回答

江户川乱折腾

应当叫对象数组,不叫类数组首先构造函数必须要有无参构造函数定以后对象数组后再调用初始化函数,初始化各对象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);}//其他过程}只有有参构造函数,不能声明对象数组。必须有无参构造函数即申明对象数组时,不能使用有参构造函数,初始化数据的传递需要另外对每个数组元素单个调用初始化函数。这样也有好处每个数组元素都可以有自己的初始化参数。可以把有参构造函数完成的功能分开成不需要参数的部分和需要参数的部分不需要参数的部分,写成无参构造函数,需要参数的部分写成初始化函数,或者干脆无参构造函数写成空函数,什么都不干,把所有的任务交给初始化函数完成。

SMILET

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