C++ - public继承的赋值兼容规则


public继承的赋值兼容规则

class base{};
class derived:public base{};
derived d;
  • 派生类的对象可以赋值给基类对象
b = d;
  • 派生类对象可以初始化基类引用
base&br = d;
  • 派生类对象的地址可以赋值给基类指针
base * pb = &d;
  • 如果派生方式是 private 或protected,则上述三条不可行

直接基类和简介基类

//
//  main.cpp
//  派生类的构造函数
//
//  Created by MENGCHEN on 16/1/22.
//  Copyright © 2016年 MENGCHEN. All rights reserved.
//
#include 
using namespace std;
class base {
    int a,b;
public:
    base(int numA,int numB);
    void PrintInfo();
};
base::base(int numA,int numB){
    a = numA;
    b = numB;
}
void base::PrintInfo(){
    cout<
  • 我们可以查看一下这段代码的输出来查看基类与子类的构建顺序与析构顺序
Baseconstructed//基类创建
deriveconstructed//子类创建
MoreDeriveconstructed//孙子创建
~MoreDeriveDesConstructed//孙子被析构
~deriveDesConstructed//子类被析构
BaseDesConstructed//基类被析构

你可能感兴趣的:(C++ - public继承的赋值兼容规则)