• C++ 类的继承三(继承中的构造与析构)


    //继承中的构造与析构
    #include<iostream>
    using namespace std;
    
    /*
    继承中的构造析构调用原则
    1.子类对象在创建时会首先调用父类的构造函数
    2.父类构造函数执行结束后,执行子类的构造函数
    3.当父类的构造函数有参数时,需要在子类的初始化列表中显示调用
    4.析构函数调用的先后顺序与构造函数相反
    
    继承与其他类做成员变量混搭的情况下,构造和析构调用原则
    1.先构造父类,在构造成员变量,最后构造自己
    2.先析构自己,再析构成员变量,最后析构父类
    */
    
    class PointA{
    public:
        PointA(int a,int b){
            x = a;
            y = b;
        }
        void PrintA(){
            cout << "PointA:x=" << x << ";y=" << y << endl;
        }
    private:
        int x;
        int y;
    };
    
    class PointC{
    public:
        PointC(int a){
            this->a = a;
        }
        void PrintS(){
            cout << "PointC:a=" << a << endl;
        }
    private:
        int a;
    };
    
    class PointB :public PointA{
    public:
        //调用父类构造函数  调用成员属性的有参构造函数
        PointB(int a, int b, int c) :PointA(a, b), ct(a)
        {
            this->c = c;
        }
        void Test1(){
            this->ct.PrintS();
        }
    private:
        int c;
        PointC ct;
    };
    
    
    void ProtectA(){
        PointB pb1(1,1,2);
        pb1.PrintA();
        pb1.Test1();
    }
    
    void main(){
        ProtectA();
        system("pause");
    }
  • 相关阅读:
    RHEL7 安装Docker-CE
    Django2.2 Vue 前后端分离 无法访问Cookie
    Vue error: Parsing error: Unexpected token
    Python Warning
    Http post 接收 html .netcore
    Echart 中国地图
    CKplayer 视频播放插件
    (转)解决windows10下无法安装.net framework 3.5,错误代码0x800F081F
    第1章 信息化和信息系统
    .net core 添加 swagger
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5628412.html
Copyright © 2020-2023  润新知