来源:远方网络 | 2006-1-6 | (有2246人读过)
现在我们来说一下,一个类对象是另外一类的数据成员的情况,如果有点觉得饶人那么可以简单理解成:类成员的定义可以相互嵌套定义,一个类的成员可以用另一个类进行定义声明。
c++规定如果一个类对象是另外一类的数据成员,那么在创建对象的时候系统将自动调用那个类的构造函数。
下面我们看一个例子。
代码如下:
//程序作者:管宁 //站点:www.cndev-lab.com //所有稿件均有版权,如要转载,请务必著名出处和作者
#include <iostream> using namespace std; class Teacher { public: Teacher() { director = new char[10]; strcpy(director,"王大力"); } char *show(); protected: char *director; }; char *Teacher::show() { return director; } class Student { public: Student() { number = 1; score = 100; } void show();
protected: int number; int score; Teacher teacher;//这个类的成员teacher是用Teacher类进行创建并初始化的
};
void Student::show() { cout<<teacher.show()<<endl<<number<<endl<<score<<endl; }
void main() { Student a; a.show(); Student b[5]; for(int i=0; i<sizeof(b)/sizeof(Student); i++) { b[i].show(); } cin.get(); }
上面代码中的Student类成员中teacher成员是的定义是用类Teacher进行定义创建的,那么系统碰到创建代码的时候就会自动调用Teacher类中的Teacher()构造函数对对象进行初始化工作!
这个例子说明类的分工很明确,只有碰到自己的对象的创建的时候才自己调用自己的构造函数!
|