c++继承对象创建与销毁流程

注意“/数字”表示的是在创建时调用过程逻辑,“/*数字”程序调用的一个过程

#include <iostream>

using namespace std;

/**
 * @brief The Value class
 * 成为其他类的变量
 */
class Value
{
private:
    string name;

public:
    Value(string name):name(name)//4:对基类中的变量(基类中的变量进行一个初始化)
    {
        cout << name << "创建了" << endl;//*1:先打印创建的基类对象
    }

    ~Value()
    {
        cout << name << "销毁了" << endl;//*6或者8:在各类中的析构函数调用完毕后对各类中的一个成员变量进行销毁
    }
};

class Father
{
public:
    static Value s_value; // 静态成员变量
    Value value = Value("Father的成员变量");

    Father()//3:通过派生类函数找到基类中的无参构造函数后,先对变量(类对象进行一个初始化)
    {
        cout << "Father类的构造函数" << endl;//*2:基类对象创建后在创建基类的构造函数
    }

    ~Father()
    {
        cout << "Father类的析构函数" << endl;//等派生类中的成员变量销毁后在调用基类的一个析构函数
    }
};

Value Father::s_value = Value("Father的静态成员变量");

class Son:public Father
{
public:
    static Value s_value; // 静态成员变量
    Value value = Value("Son的成员变量");//*3在创建派生类的一个成员变量

    Son()//2:在主函数找到派生类的无参构造函数然后再去找基类中的无参构造函数
    {
        cout << "Son类的构造函数" << endl;//*4在创建派生类的一个构造函数
    }

    ~Son()//*5在销毁时先调用派生类的一个析构函数
    {
        cout << "Son类的析构函数" << endl;
    }
};

Value Son::s_value = Value("Son的静态成员变量");



int main()
{
    cout << "主函数开始" << endl;
    // 局部代码块
    {
         Son s;//1:创建一个派生类的一个无参构造函数去找派生类中的无参构造函数
    }
    cout << "主函数结束" << endl;
    return 0;
}

在程序运行后所产生的结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值