继承与派生

友元关系不能继承。函数

若是基类定义了静态成员,则整个继承层次中只有一个这样的成员。不管从基类派生出多少个派生类,每一个静态成员只有一个实例spa

静态成员遵循常规访问控制:若是静态成员在基类中为私有的,则派生类不能访问它。若是该静态成员在基类是共有的,则基类能够访问它,派生类也能够访问它。指针

 

赋值兼容规则

赋值兼容规则是指在须要基类对象的任何地方,均可以使用公有派生类的对象来替代。code

经过公有继承,派生类获得了基类中除构造函数,析构函数以外的全部成员。这样,共有派生类实际上就具备了基类的全部功能,凡是基类能解决的问题,共有派生类均可以解决。对象

①派生类的对象能够赋值给基类对象继承

②派生类的对象能够初始化基类的引用class

③派生类的对象的地址能够复制给指向基类的指针基础

class Base{};   //基类
class Derive:public Base{};  //共有派生类
Base b, *pb;      //定义基类对象
Derive d;         //定义派生类对象

这时,支持下面三种操做:构造函数

b = d;  //派生类对象赋值给基类,复制基类继承部分
Base &rb = d;  //基类引用到派生类对象
pb = &d; //基类指针指向派生类对象

赋值兼容规则是C++多态性的重要基础之一。引用

 

二义性问题

使用成员名限定能够消除二义性,基本形式为:

   对象名.基类名::成员名

   对象指针名->基类名::成员名

虚基类

相关文章
相关标签/搜索