首页 > 编程知识 正文

c语言中怎么定义数组,在c中定义一个数组正确的代码为

时间:2023-05-05 21:44:25 阅读:106280 作者:692

数组不仅仅是简单的变量,例如整数数组的所有元素都可能是整数变量。 此外,对象数组中的所有元素也可能是同类对象。

在日常生活中,许多实体的属性是共同的,但属性的具体内容不同。 例如,班上有50名学生,每个学生的属性都包括姓名、性别、年龄、成绩等。 为每个学生创建对象时,每个对象必须有50个对象名称。 用程序处理非常不方便。 您可以在此定义“学生类”对象的数组。 每个数组元素都是“学生类”对象。 例如

Student stud[50]; 声明Student类,定义stud数组,假设有50个要素

创建数组时,还将调用构造函数。 如果有50个元素,则必须调用50次构造函数。

如果需要,可以在定义数组时提供实际参数进行初始化。 如果构造函数只有一个参数,则可以在定义数组时直接在等号后面的大括号中指定实参数。 例如

sudent stud [3]={ 60,70,78 }; //合法,3个实参分别交给3个数组元素的构造函数

如果构造函数具有多个参数,则在定义数组时无法直接提供所有参数。 因为一个数组中有多个元素,并为每个元素提供多个参数。 而且,考虑到构造函数有默认参数的情况,实际参加形式参数的对应关系不明确,容易出现模糊性。 例如,类Student的构造函数具有多个参数,它们是缺省参数。

sudent :3360 student (int=1001,int=18,int=60 ); //定义构造函数,其中包含多个参数,是默认参数

如果定义对象数组的语句是

sudent stud [3]={ 1005,60,70 };

在程序中最好不要采用这种容易引起模糊性的方法。

由于编译系统只能将一个参数传递给每个对象元素的构造函数,因此在定义数组时,指定的参数不能超过数组元素的数量。 范例

sudent stud [3]={ 60,70,78,45 }; //非法,实变元个数超过对象数组元素的个数

那么,如果构造函数有多个参数,在定义对象数组时应该如何进行初始化呢? 回答时,在大括号内分别写下构造函数,指定参与。

如果构造函数有三个参数,则分别表示学校号码、年龄和成绩。 可以按如下方式定义对象数组:

Student Stud[3]={ //定义对象数组

sudent (1001,18,87 ),//调用第一个元素的构造函数,为其提供三个实现

调用sudent (1002,19,76 )、//第二个元素的构造函数,为其提供三个实现

student(1003、18、72 ) /调用第三个元素的构造函数以提供三个参数

(;

创建对象数组时,请单独调用构造函数并对每个元素进行初始化。 各要素的实参分别用括号括起来,与构造函数对应的形参的组不会混淆。

[示例9.6]对象数组的用法。

#包含

using namespace std;

class Box

{

公共:

//声明具有缺省参数的构造函数,并在参数初始化表中初始化数据成员

box(inth=10,int w=12,int len=15 ) :height(h )、width(w )、length (len ) }

int volume (;

私有:

int height;

int width;

int length;

(;

int Box:volume () )

{

返回(height * width * length );

}

int main () )

{

Box a[3]={ //定义对象数组

调用Box(10、12、15 )、//构造函数box,提供第一个元素的实际参考

调用Box(15、18、20 )、//构造函数box,为第二个元素提供实参

调用Box(16、20、26 )//构造函数box,提供第三个元素的实际参考

(;

出局

出局

出局

返回0;

}

执行结果如下。

volume of a[0] is 1800

volume of a[1] is 5400

volume of a[2] is 8320

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。