C++中类的继承与派生

来源:互联网 发布:北大软件工程硕士年薪 编辑:程序博客网 时间:2024/06/05 11:48
  1. 为了代码的可重用性,我们有了派生和继承。在既有的类的基础上创建一个新类,新类继承了既有类的成员,并且还允许增加信的成员,或者改造了既有类中的某些成员函数,这就是继承;
  2. 基类不能被派生类继承的两类函数是构造函数和析构函数;
  3. 派生类可以直接调用基类的数据成员和成员函数,也可以调用新增加的数据成员和成员函数;
  4. 基类的private成员在派生类的成员函数不可以直接访问,但派生类的成员函数可以通过调用基类被继承的函数来间接访问这些成员。如果基类的函数被继承后在派生类中仍为public成员。则可以通过派生类对象直接调用;
  5. 访问声明出现在派生类的定义中,目的是保持基类public或protected成员原有的访问属性,而不是改变其访问属性,对基类的private成员不能呢个使用访问声明;访问声明的方式为:基类名::成员名;  
  6. using声明方式用来改变基类protected成员或public成员在派生类中默认的访问属性,但是using声明不能对基类的private成员使用。using访问声明改变了基类成员被继承后原有的访问属性,它通常用在基类被继承后,基类的一些特殊接口或者属性需要在派生类中禁用的情况。而上面的访问声明是为了保持基类成员原有的访问属性;
  7. 基类的构造函数和析构函数不能被继承。因此,在定义一个派生类的对象时,在派生类中新增加的数据成员当然用派生类的构造函数初始化,但是对于从基类中继承而来的数据成员的初始化工作就必须由基类的构造函数完成,这就需要在派生类的构造函数中完成对基类构造函数的调用。还有,派生类的析构函数默认直接调用了基类的析构函数。
  8. 平行基类的同名成员必须要加上“基类名::” 进行类名限定;
  9. 一个基类在派生不同的派生类的时候,将基类声明为一个虚基类,使得它的成员在不同的派生类中只存在一份拷贝。注意:是将一个基类声明为虚基类。其定义形式:class 派生类: 继承方式 virtual 基类名 {}; 


0 0
原创粉丝点击