斗破C++编程入门系列之三十三:继承与派生:派生类的析构函数(一星斗师)

斗破C++目录:

斗破C++编程入门系列之前言(斗之气三段)
斗破C++编程入门系列之二:Qt的使用介绍(斗之气三段)
斗破C++编程入门系列之三:数据结构(斗之气三段)
斗破C++编程入门系列之四:运算符和表达式(斗之气五段)
斗破C++编程入门系列之五:算法的基本控制结构之选择结构(斗之气八段)
斗破C++编程入门系列之六:算法的基本控制结构之循环结构(斗之气八段)
斗破C++编程入门系列之七:自定义数据类型(斗之气八段)
斗破C++编程入门系列之八:函数的定义与调用(斗之气八段)
斗破C++编程入门系列之九:函数重载与模板函数(斗之气九段)
斗破C++编程入门系列之十:类与对象:类的声明、成员的访问控制和对象(二星斗者)
斗破C++编程入门系列之十一:类与对象:构造函数和析构函数(四星斗者)
斗破C++编程入门系列之十二:类与对象:类的组合(五星斗者)
斗破C++编程入门系列之十三:类与对象:类模板(六星斗者)
斗破C++编程入门系列之十四:C++程序设计必知:作用域和可见性(六星斗者)
斗破C++编程入门系列之十五:C++程序设计必知:变量生存期(六星斗者)
斗破C++编程入门系列之十六:C++程序设计必知:类的静态成员(九星斗者)彩蛋)
斗破C++编程入门系列之十七:C++程序设计必知:友元(九星斗者)彩蛋)
斗破C++编程入门系列之十八:C++程序设计必知:常引用、常对象(九星斗者)彩蛋)
斗破C++编程入门系列之十九:C++程序设计必知:多文件结构和编译预处理命令(九星斗者)
斗破C++编程入门系列之二十:数组、指针和字符串:数组的声明和使用(一星斗师)
斗破C++编程入门系列之二十一:数组、指针和字符串:数组的存储与初始化、对象数组、数组作为函数参数(一星斗师)
斗破C++编程入门系列之二十二:数组、指针和字符串:指针变量的声明、地址相关运算–“*”和“&”(一星斗师)
斗破C++编程入门系列之二十三:数组、指针和字符串:指针的赋值和指针运算(一星斗师)
斗破C++编程入门系列之二十四:数组、指针和字符串:指向数组元素的指针和指针数组(一星斗师)
斗破C++编程入门系列之二十五:数组、指针和字符串:指针用作函数参数、指针型函数和函数指针(一星斗师)
斗破C++编程入门系列之二十六:数组、指针和字符串:动态内存分配和释放(一星斗师)
斗破C++编程入门系列之二十七:数组、指针和字符串:string类(一星斗师)
斗破C++编程入门系列之二十八:继承与派生:概念介绍与派生类的声明(一星斗师)
斗破C++编程入门系列之二十九:继承与派生:派生类从基类继承的过程(一星斗师)
斗破C++编程入门系列之三十:继承与派生:派生类对基类成员的访问控制之公有继承(一星斗师)
斗破C++编程入门系列之三十一:继承与派生:派生类对基类成员的访问控制之保护继承与私有继承(一星斗师)
斗破C++编程入门系列之三十二:继承与派生:派生类的构造函数(一星斗师)
斗破C++编程入门系列之三十三:继承与派生:派生类的析构函数(一星斗师)

鸡啄米C++

记住首页不迷路:
http://www.jizhuomi.com/software/129.html

斗破观看顺序:

https://v.haohuitao.cc/yhplay/336-1-2.html
第一季☞第二季前2集☞特别篇1☞第二季3~12集☞特别篇2沙之澜歌☞第三季☞第四季☞三年之约☞缘起☞年番
斗气大陆等级:
斗气有十一个阶别,斗之气,斗者,斗师,大斗师,斗灵,斗王,斗皇,斗宗,斗尊,斗圣,斗帝。
斗气大陆上很久没有出现过斗帝了。

一、解救云芝

萧炎与云芝分开后,云芝很快被蛇人族的五位长老追上,刚开始的时候云芝还处于上风,但是当蛇人族使用五蛇毒刹印召唤出灵蛇,云芝便处于被动,在生死之际,她想到了与萧炎的重遇的点点滴滴。
萧炎也早早地发现了远处的震天的毒印,被二人的爱情打动的药老,决定救下云芝,就这样药老的骨灵冷火正好克制毒蛇,将云芝从死亡的边缘拉了回来。但是萧炎最后还是隐瞒了自己的身份,他应该是想用自己的方式与云芝再见吧。
云芝望着药岩远去的方向,等着那个男人再次出现在她面前,可那时的药岩亦是赴三年之约的萧炎了,有时候相遇是缘分,亦是劫数。这世上有命中注定,就有在劫难逃,当这两者出现在同一人身上时,那个人,既是你命中注定的缘分,亦是你躲不过的劫数。

二、C++:派生类的析构函数(一星斗师)

派生类的析构,与构造时的顺序正好相反,即先执行子类的析构函数,再执行父类的析构函数。
提个问题:大家可能会问为什么父类的也会被析构?
回答:子类都有自己独一无二的父类,所以子类析构,父类不析构,就会造成内存的泄露。这和我们现实生活中所理解的一个父亲有多个孩子是不同的。代码中子类继承父类,其实是复用了父类的代码,所以子类释放时也要释放父类的代码。
来看代码,我们定义Queen的析构函数、远古灵蛇的析构函数。

#ifndef QUEEN_H
#define QUEEN_H

#include "ancientsnake.h"
#include "person.h"

//美杜莎女王继承了远古斗技
//美杜莎女王继承了人类的形态
class Queen
 : public AncientSnake
 , public Person<double>
{
public:
    Queen();

//定义析构函数
    ~Queen(){
        qDebug() << "析构Queen";
    }

public:
    //定义与父类相同的成员函数
    void use_ancient_fighting_skill(){
        qDebug() << "使用蛇族远古斗技 升级版本";
    }

public:
    //定义与父类相同的成员变量
    QString name;

public:
    //定义自己的函数
    void use_secret_skill(){
       qDebug() << "使用蛇族秘术";

       //调用远古灵蛇的protected属性函数
       swallow_strange_fire();
    }

};

#endif // QUEEN_H


#ifndef ANCIENTSNAKE_H
#define ANCIENTSNAKE_H

#include <QDebug>


class AncientSnake
{
public:
    AncientSnake();

//析构函数
    ~AncientSnake(){
        qDebug() << "析构AncientSnake";
    }

public:

    void use_ancient_fighting_skill(){
        qDebug() << "使用蛇族远古斗技";
    }

protected:
    void swallow_strange_fire(){
        qDebug() << "吞噬异火";
    }

private:
    void use_ancient_unique_skill(){
        qDebug() << "远古灵蛇独有的秘技";
    }

};

#endif // ANCIENTSNAKE_H


大家执行程序,然后再关闭程序,再看看析构打印的顺序,就能明白了。

三、英语

先来看几个单词:

  • Destructor 析构函数
  • fate 命运

再来看几个句子:

  • He probably(可能) wants(想) to meet(见到) to Yunzhi(云芝)again(再次地) in his own way(用自己的方式), right(对吗)?
  • 他应该是想用自己的方式与云芝再见吧。

in … way 用…的方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可峰科技

生活不易

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值