析构函数问题,不太懂这个位置

#include <iostream> using namespace std; class clock { public:     clock(int h, int m, int s)     {cout<<"我先走"<<endl;           hour=h;minute=m;sec=s; }     ~clock()     {cout<<"我撤后"<<endl;}     void display()     {cout<<hour<<":"<<minute<<":"<<sec<<endl;} private:     int hour,minute,sec; };

void main() {     clock t1(11,59,59);     t1.display(); //显示输出函数 }

 

想问一下,为什么析构函数~clock()  放在了void display()   的前面。这样要是输出的话,11:59:59不应该是最后输出吗?

你丫的,代码写这样让人怎么看????

不管编写顺序怎么样,析构函数都是最后才进行的,且是当程序退出时才调用析构函数。

所以输出结果是正确的!

#include <iostream>

using namespace std;

class clock { 

public:     

clock(int h, int m, int s) {
	cout<<"我先走"<<endl;           
	hour=h;
	minute=m;
	sec=s; 
}  

~clock() {
	cout<<"我撤后"<<endl;
}     

void display() {
	cout<<hour<<":"<<minute<<":"<<sec<<endl;
} 

private:     
	int hour,minute,sec; 

};

void main() {
	clock t1(11, 59, 59);     
	t1.display();	//显示输出函数 
}