c++的数组类型为同类型对象的组织提供了一种有效的形式。
由于使用字符数组表示的字符串有不足之处,因此标准c++库中提供了string类,这是通过类库来扩展数据类型的一个很好的典范。
1、数组
数组是用于存储和处理大量同类型数据的数据结构。
数组是具有一定顺序关系的若干对象的集合体,组成数组的对象称为该数组的元素。
2、数组的声明和使用
声明一个数组应该包含以下几个方面:
a、确定数组的名称
b、确定数组元素的类型
c、确定数组的结构(包括数组维数,每一维的大小等)
数组类型声明的形式
数据类型 标识符[常量表达式1][常量表达式2]...;
数组的使用,只能分别对数组的各个元素进行操作。
数组名[下标表达式1][下标表达式2]...
3、数组的存储与初始化
a、数组的存储
数组元素在内存中是顺序、连续存储的。
数组的初始化就是在声明数组时给部分或全部元素赋初值。
4、数组作为函数参数
数组元素和数组名都可以作为函数的参数以实现函数间数据的传递和共享。
5、对象数组
声明一个一维对象数组的语句形式是:
类名 数组名[下标表达式]
每个数组元素都是一个对象,通过这个对象,可以访问到它的公有成员,一般形式如下:
数组名[下标].成员名
对象数组的初始化过程,实际上就是调用构造函数对每一个元素对象进行初始化的过程。如果在声明数组时给每一个数组元素指定初始值,在数组初始化过程中就会调用形式参数类型相匹配的构造函数。如
Location A[2] ={Location(1,2),Location(3,4)};
在执行时会先后两次调用带形参的构造函数分别初始化A[0],A[1].如果没有指定数组元素的初始值,就会调用默认的构造函数,如
Location[2]={Location(1,2)};
在执行时首先调用带形参的构造函数初始化A[0],然后调用默认构造函数初始化A[1]。注意在设计类的时候要充分考虑到数组元素初始化时候的需要:当各元素对象的初值要求为相同的值时,应该在类中定义出具有默认形参值的构造函数;当各元素对象的初值要求为不同的值时,需要定义带形参的构造函数。