码迷,mamicode.com
首页 > 编程语言 > 详细

[C++]对象的销毁机制

时间:2014-08-06 18:14:21      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   os   io   div   代码   c++   

销毁时会按照从后向前的顺序销毁,也就是说,越在后面定义的对象会越早销毁。其中的原因就是函数是在栈中保存的,因此,先定义的对象先压栈,所以在退栈时就会后销毁。而如果参数有多个的话,大多数编译器是从右开始压栈的,也就是参数列表最右边的变量最先压栈,所以参数列表最右边的变量会在最后销毁。

代码如下:

 1 #include<iostream>
 2 
 3 using namespace std;
 4 
 5 class Matter {
 6 public:
 7     Matter(int id) : _identifier(id) 
 8         {cout << "Matter from " << _identifier << endl; }
 9     ~Matter()
10         { cout << "Matter Bye from " << _identifier << endl; }
11 
12 private:
13     const int _identifier;
14 };
15 
16 class World {
17 public:
18     World(int id) : _identifier(id),_matter(id)
19         {cout << "Hello from " << _identifier << endl; }
20     ~World() { cout << "Bye from " << _identifier << endl; }
21 
22 private:
23     const int _identifier;
24     Matter _matter;
25 };
26 
27 World TheWorld(1);
28 
29 int main() {
30     World smallWorld(2);
31     cout << "hello from main()\n";
32     World oneMoreWorld(3);
33 
34     return 0;
35 }

输出结果

Matter from 1 
Hello from 1
Matter from 2 
Hello from 2 
Hello from main()
Matter from 3 
Hello from 3
Bye from 3
Matter Bye from 3
Bye from 2
Matter Bye from 2
Bye from 1
Matter Bye from 1

 

[C++]对象的销毁机制,布布扣,bubuko.com

[C++]对象的销毁机制

标签:style   blog   color   os   io   div   代码   c++   

原文地址:http://www.cnblogs.com/hustcser/p/3894953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!