zoukankan      html  css  js  c++  java
  • 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");
    }
  • 相关阅读:
    Python学习笔记Day24
    Python学习笔记Day23
    Python学习笔记Day22
    Python学习笔记Day21
    Python学习笔记Day19
    Python学习笔记Day18
    Python学习笔记Day17
    Python学习笔记Day16
    Python学习笔记Day15
    linux普通文件权限和系统目录权限的实践及结论
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/5628412.html
Copyright © 2011-2022 走看看