本集内容:对象数组
■由同一类的对象构成的数据集合。
■定义(一维)对象数组的格式:
类名 对象数组名 [数组大小];
■定义带初始值的对象数组:
类名 对象数组名[数组大小]= {
构造函数名 (实参表1),构造函数名(实参表2),
......
构造函数名(实参表n)
} ;
■对象数组元素的引用格式:
对象数组名[下标]
示例:
#include <iostream>
using namespace std;
class Test
{
int x;
public:
Test(int a);
void getx();
};
Test::Test(int a=1)
{
x=a;
}
void Test::getx()
{
cout<<"x="<<x<<endl;
}
int main()
{
Test A[2]={Test(10),Test(20)};
Test B[2];
A[0].getx();
A[1].getx();
B[0].getx();
B[1].getx();
return 0;
}
计算长方体的体积
#include <iostream>
using namespace std;
class Box
{
private :
int length;
int width;
int height;
public :
Box(int len,int w,int h); //声明给一个带三个参数的构造函数原型
int volume( );
};
Box::Box(int len,int w,int h)
{
length=len;
width=w;
height=h;
}
int Box::volume( )
{
return (length*width*height);
}
int main()
{
Box a[3]={ //定义对象数组
Box(15,12,10), //调用构造函数Box,提供第1个元素的实参
Box(20,18,15), //调用构造函数Box,提供第2个元素的实参
Box(26,20,16), //调用构造函数Box,提供第3个元素的实参
};
cout<<"volume of a[0] is "<<a[0].volume( )<<endl;
cout<<"volume of a[1] is "<<a[1].volume( )<<endl;
cout<<"volume of a[2] is "<<a[2].volume( )<<endl;
return 0;
}
//是指每一个数组元素都是对象的数组,也就是说,若一个类有若干个对象,我们把一系列的对象用一个数组 存放
//对象数组的元素是对象,不仅具有数据成员,而且还有函数成员