1.继承和派生的基本概念
继承:在定义一个新的类B时,如果该类与某个已有的类A相似(指的是B拥有A的全部特点),那么就可以把A作为一个基类,而把B作为基类的一个派生类(也成为子类)。
派生类是通过对基类进行修改和扩充得到的。在派生类中,可以扩充新的成员变量和成员函数。
派生类一旦定义以后,可以独立使用,不依赖于基类。
派生类拥有基类的全部成员函数和成员变量,不论是private,protected,public。
在派生类的各个成员函数中,不能访问基类中的private成员。
需要继承机制的例子:
所有学生都有的共同属性:姓名,学号,性别,成绩。
所有学生都有的共同方法(成员函数):是否该留级,是否该奖励。
而不同的学生,又有各自不同的方法:研究生:导师,系。大学生:系。中学生:竞赛特长加分。
2.派生类的写法
class 派生类名:public 基类名
{
};
例子:
class cstudent{
private:
string sname;
int nage;
public:
bool isthreegood(){};
void setname (const string &name){sname=name;}
};
class cundergraduantestudent:public cstudent{
private:
int ndepartment;
public:
bool isthreegood(){}; //覆盖
bool canbaoyan(){...}; //修改
};//派 生类的写法是:类名:public 基类名
3.派生类对象的内存空间
派生类对象的体积,等于基类对象的体积,再加上派生类对象自己的成员变量的体积。在派生类对象中,包含着基类对象,而且基类对象的存储位置位于派生类对象新增的成员变量之前。