一、派生类:复合类是两个类的关系的一种, 是一种 “是” 的关系。
1、派生类的构造
class student
{
public:
stuent(char *pname)
{
// ......
}
};
class graduateStudent : public student // 继承方式
{
public:
graduateStudent(char *pname, char *pwork)
: student(pname) // 在初始化列表进行构造
{
// ......
}
};
2、派生类的析构
派生类析构时会将基类同时也析构, 故不需要对对象的基类进行额外的析构操作。
详细看:① 基类和派生类的构造和析构顺序
② 虚析构函数
3、派生类的赋值与强制类型转化
graduateStudent gs;
student s = gs; // 派生类可赋值给基类
(stuent)gs = s; // 基类可以赋值给强制类型转化之后的派生类
二、复合类
复合类是两个类的关系的一种, 是一种 “有” 的关系。
class Advisor
{
// ... ...
};
class student
{
public:
stuent(char *pname)
{
// ... ...
}
};
class graduateStudent : public student // 继承方式
{
private:
Advisor advisor;
// ... ...
public:
graduateStudent(char *pname, char *pwork, Advisor adv)
: student(pname), advisor(adv) // 在初始化列表进行构造
{
// ... ...
}
};