C++继承时的一些细节知识点

  • 编译器只有在一个类中没有一个构造函数的时候自动生成默认构造函数,当类中有任何一个类的时候,系统便不会再生成默认构造函数。

  • 基类的成员变量在派生类中不可直接访问,但可以以间接访问,例如通过调用基类的成员函数来实现。

  • 不同继承方式的影响主要体现在:

  1. 派生类成员对基类成员的访问权限;
  2. 通过派生类对象对基类成员的访问权限;
  • 派生类对象的体积,等于基类对象的体积,再加上派生类对象自己的成员变量的体积。在派生类对象中,包含着基类对象,而且基类对象对象的存储位置位于派生类对象新增的成员变量之前。

public继承时的赋值兼容规则:

 class base{   };
 class derived : public base{    };
 base b;
 derived d;
  1. 派生类的对象可以赋值给基类对象
    b=d;

  2. 派生类对象可以初始化基类引用

    base &br=d;

  3. 派生类对象的地址可以赋值给基类指针

    base *pb=&d;

注:如果派生方式时private或protected,则上述三条不可行。

原文地址:https://www.cnblogs.com/Acapplella/p/13301849.html