|
|
下列程序:
#include<iostream>
class A
{
public:
A(void){cout<<"A Created!"<<endl;}
~A(void){cout<<"A Destroyed!"<<endl;}
};
class B
{
public:
B(void){cout<<"B Created!"<<endl;}
~B(void){cout<<"B Destroyed!"<<endl;}
};
A a1;
void main(int p1,char* p2[])
{
cout<<"In Main!"<<endl;
A a2;
}
B b1;
输出:
A Created!
B Created!
In Main!
A Created!
A Destroyed!
很奇怪吧?a1和b1怎么没有被析构?而且执行顺序是main前-->main后-->main,另外在main外只能声明对象,不能执行其它任何语句.
结论:main外的部分只能用来声明全局对象,并且main外的先一起做完在从main开始.
问题是全局对象在哪被析构??? [em8] |
|