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

Posted 庖丁解牛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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");
}

 

以上是关于C++ 类的继承三(继承中的构造与析构)的主要内容,如果未能解决你的问题,请参考以下文章

第四十六课继承中的构造与析构

面向对象中的继承封装构造与析构函数

C++基础——C++面向对象之类对象与继承基础总结(类和对象概念构造函数与析构函数this指针继承)

继承中的构造与析构

C++--继承中的构造与析构父子间的冲突

C++--第16课 - 继承中的构造与析构