在C语言中结构体支持嵌套,同样,c++的类也支持嵌套。也就是让某个类的对象作为另一个类的数据成员出现,这就是对象组合。
下面的例子是让IntArray类的对象作为Customer类的共有数据成员存在。
在这里,IntArray类其实就充当了我们自己定义的一个抽象数据类型,通过各种运算符重载函数,实现对字符串很方便的操作与管理。
IntArray类:
class IntArray
{
private:
char *aptr;
int arraySize;
void memError(); //处理内存非配错误
void subError(); //处理下标越界
public:
IntArray(){aptr = NULL;arraySize = 0;}
IntArray(const char *);
IntArray(const IntArray &);
~IntArray();
//返回对象元素个数
int size(){return arraySize;}
//重载[]运算符
char &operator[](const int &);
//重载赋值运算符
char *operator=(const char *);
//重载流插入符
friend ostream &operator<<(ostream &,IntArray &);
};
Customer类:
class Customer
{
public:
//对象组合,其他类的实例对象作为该类中的数据成员
IntArray name