在一个函数内,申明一个局部类变量。则这个变量什么时候析构呢? 并不是在函数退出、释放栈空间时候析构消亡,而是在大括号终结时。举例如下:
- #include <stdio.h>
- #include <unistd.h>
- class TT
- {
- public:
- TT();
- ~TT();
- };
- TT::TT()
- {
- printf("construct\n");
- }
- TT::~TT()
- {
- printf("destruct\n");
- }
- int main()
- { int n=2;
- while(n>0)
- {
- TT t1;
- sleep(1);
- printf("000000\n")
- } //此处析构
- printf("1111111111\n");
- return 0;
- }
construct
000000
destruct
1111111111
而不是:
construct
000000
1111111111
destruct