c++析构函数作用域


析构函数与构造函数一般是同一个话题。构造函数与析构函数的执行顺序刚刚好相反。在类里面的继承关系更为之显著。

 class Studnet{
        Student(int s,int n){...}
            ~Student(){cout<<"Student XG";}
};

class Universe:public Student{
      public:
           Universe(int q,int w){...}
           ~Universe(){cout<<"Universe XG";}

};                            //构造函数的执行顺序是 基类->子类;析构函数的执行顺序是  子类—>基类;需要提醒的是这个是对于子类与基类的关系;                                                             对于两个不相关的类的
对于c++基础,贯彻全部内容的就是   析构函数和构造函数   的执行顺序【(当然像 继承 封装 多态;还是再简单的提及一下吧,毕竟这是博文写的就是c++学习笔记)

继承 :private(私有继承),protected(保护基础),public(公有继承)

class A{   private:.........

public:.......

protected:.......};   

class B:privatA{ private:.........

public:.......

protected:.......}; //基础的就不说了,说些需要注意的:无论是私有还是公有还是保护继承,基类的私有始终只是基类所特有的(即无法继承private的东西)。你继承来的只能是基类里protected,和 public 的;

public继承基类里的公有和保护的(public 继承,基类 公有的还是继承为公有的,私有的还是继承为私有的);

protected继承:基类里的public 和protected 到了 派生类 就变成 protected;

private继承:基类里的public和protected 到了派生类就成  private;

(继承是把基类的以 protected(例如) 把全部(基类的public和protected)可以继承的 继承为  (protected));


多态:说白了就是重载和虚函数(virtual)



回到正题:析构函数 和构造函数的顺序

       以为后头的很多虚函数 普通函数 重载函数 。。。运算符重载 。。。。继承。。。。。

      都有很多的  析构函数和构造函数的考究

记得你头疼,但是呢你知道原理之后一切就变得有趣了,有规律可循;

c++是一种编译环境  不是一门语言(这句话是一位;老师强调的,因为c++延续了很多c语言的语法,而且很多语法都可以用,是编译器里写好的一些规则,对这句话有异议的可以留言大家探讨下)

噢对了那个规律呢,就是你要知道 编译器是怎么解读 c++代码的: windows 系统的  vc++6.0 和 linux 的gcc  都是目前最流行的c++编译器,他对析构函数的存储呢

是用堆栈的形式 ;在main函数里,你生成一个对象就把析构函数入栈。等到你程序跑完,return 0;

后 就开始读取堆栈里的析构函数对对象进行析构;离return 语句最近的那个  对象是最后才入栈的,先进后出。所以他是最先进行析构的;(讲了这么多呢要讲的就是这个,其它的具体规则都可以在网上搜索到,所以我说的只是这个思想)


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值