如何定义类数组 c++

构造函数有多个参数如果只有有参数的构造函数是不是就不能构造对象数组?... 构造函数有多个参数
如果只有有参数的构造函数是不是就不能构造对象数组?
展开
 我来答
帐号已注销
2019-10-06 · TA获得超过25.9万个赞
知道小有建树答主
回答量:2206
采纳率:96%
帮助的人:81万
展开全部

1:对象数组的定义:类名 数组名[元素个数]

Eg: student asa[10];//有10个元素的学生类对象数组

2:对象数组的访问形式:数组名[下标].成员名;

Eg: asa[j].print();

3:对象数组的初始化:对象数组的初始化通常也是由构造函数来完成的。

扩展资料

类所表示的一组对象十分相似,可以作为模板来有效的创建对象,利用类可以产生很多的对象类所代表的事物或者概念都是抽象的。

在存取Private类型数据或者函数的时候,只有类本身声明的函数才是被允许的。类在与外部连接时,利用的就是Public共有类型函数,任何外部函数的访问都是运行的。

对象主要是对客观事物的某个实体进行描述,它作为一个单位,共同组成了系统,它的组成是一组属性和一组服务,这组服务操作于这组属性。

属性和服务是对象构成众多要素中的两种,属性的实质是一个数据项,主要是对对象静态特性进行描述,服务的实质是一个操作序列,主要是对对象动态特征进行描述。

参考资料来源:百度百科—C++

休闲娱乐达人天际
高能答主

2020-04-04 · 致力于休闲娱乐知识的解答,分享娱乐知识。
休闲娱乐达人天际
采纳数:1605 获赞数:396551

向TA提问 私信TA
展开全部

对象数组的定义:类名 数组名[元素个数]

Eg: student asa[10];//有10个元素的学生类对象数组

组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。数组是在程序设计中,为了处理方便, 把具有相同类型的若干变量按有序的形式组织起来的一种形式。

扩展资料:

初始化

a.在函数体内定义的内置数组,其元素没有初始化

b.在函数体外定义的内置数组,其元素初始化为零

c.对于类类型,不管数组在哪定义,都调用该类的默认构造函数进行初始化,若该类没有默认构造函数,则需显式初始化。

int a[5]={0,1,2}; //a[]={0,1,2,0,0}

string str[5]={"hi","hi"}; //str[]={"hi","hi","","",""};

char cal[] = {'C','+','+'}; //size=3

char cal[] = {'C','+','+',''}; //size=4

char cal[] = "C++"; //size=4

char cal[3] = "C++"; //error

注意:不能象vector一样,用数组给另一数组直接初始化,或者直接赋值

char a[3] = {'C','+','+'};

char b[3];

a=b; //error;

//////////////////////////////

char a[3] = {'C','+','+'};

char b[](a); //error

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sinba6530d
推荐于2017-11-28 · TA获得超过449个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:221万
展开全部
应当叫对象数组,不叫类数组

首先构造函数必须要有无参构造函数

定以后对象数组后再调用初始化函数,初始化各对象

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

可以把有参构造函数完成的功能分开成不需要参数的部分和需要参数的部分
不需要参数的部分,写成无参构造函数,需要参数的部分写成初始化函数,
或者干脆无参构造函数写成空函数,什么都不干,把所有的任务交给初始化函数完成。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
CrestyLee
2010-07-19 · TA获得超过612个赞
知道小有建树答主
回答量:339
采纳率:100%
帮助的人:110万
展开全部
对象数组的初始化函数可以有多个,函数名与对象名相同,属性应为public。不同的初始化函数以参数的数量、类型来区分,调用时应注意,避免使用模棱两可的参数导致调用时产生混乱。
如:初始化函数有两个,第一个的参数为(double a, int b),第二个函数的参数为(int a,double b)。调用时赋与的参数是(3,4),这样便会导致混乱,不知调用哪个初始函数了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式