标题:关于析构函数的问题
只看楼主
偶成
Rank: 1
等 级:新手上路
帖 子:90
专家分:0
注 册:2006-3-4
 问题点数:0 回复次数:2 
关于析构函数的问题

#include "stdafx.h"
#include <iostream>
using namespace std;

class Triangle{
public:
float i;
Triangle(float m){i=m;}
~Triangle(){cout<<"destruct the no. is "<<i<<endl;}
};

int _tmain(int argc, _TCHAR* argv[])
{
Triangle wc(1.0),tri(6.0);
cout<<tri.i<<endl;
cout<<wc.i<<endl;
return 0;
}
比如这个程序中的两个对象wc和tri,调用析构函数销毁时,是先销毁哪个?为什么是那样的顺序,谢谢

搜索更多相关主题的帖子: 函数 
2006-05-08 10:21
myajax95
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:30
帖 子:2978
专家分:0
注 册:2006-3-5
得分:0 
一个函数执行开始的时候把声明的变量一个一个的压入这个函数数据堆占,函数结束的时候再一个一个弹出来。堆占是先入后出(Last in First Out)。所以先construct wc,再construct tri,函数结束时先destruct tri,再destruct wc。

http://myajax95./
2006-05-08 13:56
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
得分:0 
楼主忘了析构最主要的定义吧
析构完全是构造的反写形式(~)

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-05-09 12:56



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-62503-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.091669 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved