对象数组是指数组元素为对象的数组。该数组中若干个元素必须是同一个类的若干个对象。对象数组的定义、赋值和引用与普通数组一样,只是数组的元素与普通数组不同,它是同类的若干个对象。
1. 对象数组的定义
对象数组定义格式如下:
<类名><数组名>[<大小>]...
其中,<类名>指出该数组元素是属于该类的对象,方括号内的<大小>给出某一维的元素个数。一维对象数组只有一个方括号,二维对象数组要有两个方括号,等等,例如:
DATE dates[7];
表明dates是一维对象数组名,该数组有7个元素,每个元素都是类DATE的对象。
2. 对象数组的赋值
对象数组可以被赋初值,也可以被赋值。例如:
class DATE
{
public:
DATE(int m, int d, int y);
void printf();
private:
int month, day, year;
};
下面是定义对象数组并赋初值和赋值:
DATE dates[4]={ DATE(7, 7, 2001), DATE(7, 8, 2001), DATE(7, 9, 2001), DATE(7, 10, 2001) }
或者
dates[0] = DATE(7, 7, 2001);
dates[1] = DATE(7, 8, 2001);
dates[2] = DATE(7, 9, 2001);
dates[3] = DATE(7, 10, 2001); 三层交换技术 交换机与路由器密码恢复 交换机的选购 路由器设置专题 路由故障处理手册 数字化校园网解决方案
指向数组的指针和指针数组
指向数组的指针和指针数组是两个完全不同的概念,现放在一起介绍是中为两者在定义格式相似,千万不要把它们搞混了。
1. 指向数组的指针
指向一般数组的指针定义格式如下:
<类型说明符>(*<指针名>)[<大小>]...
其中,用来说明指针的 * 要与<指针名>括在一起。后面用一个方括号表示该指针指向一维数组,后面用二个方括号表示该指针指向二维数组。<类型说明符>用来说明指针所指向的数组的元素的类型。例如:
int (*P)[3];
P是一个指向一维数组的指针,该数组有3个int型元素。
而指向对象数组的指针,则把<类型说明符>改为<类名>即可:
<类名>(*<指针名>)[<大小>]...
指向数组的指针的主要应用思想是:将数组的首地址(二维数组的某个行地址)赋给指针,然后通过循环(for)改变指针指向的地址,从而动态的访问数组中各个元素。
2. 指针数组
所谓指针数组指的是数组元素为指针的那类数组。一个数组的元素可以是指向同一类型的一般指针,也可以是指向同一类类型的对象。
一般指针数组的定义格式如下:
<类型名>*<数组名>[<大小>]...
其中,*加在<数组名>前面表示该数组为指针数组。[<大小>]表示某一维的大小,即该维的元素个数,…表示可以是多维指针数组,每一个[<大小>]表示一维。例如:
int * pa[3];
char * pc[2][5];
在C++编程中,经常使用char型的指针数组用来存放若干个字符串。下面是一个一维指针数组的例子。