http://blog.chinaunix.net/uid-52437-id-2108747.html
在一个函数内,申明一个局部类变量。则这个变量什么时候析构呢? 并不是在函数退出,释放栈空间时候析构消亡,而是在打括号终结时。(搞了这么多年c++,这点都没搞清楚,只能说明基础不扎实阿)。举例如下
#include <stdio.h>
#include <unistd.h>
class TT
{
public:
TT();
~TT();
};
TT::TT()
{
printf("construct
");
}
TT::~TT()
{
printf("destruct
");
}
int main()
{ int n=2;
{
TT t1;
printf("000000
")
} //此处析构
return 0;
}
输出:
construct
000000
destruct
1111111111
而不是
construct
000000
1111111111
destruct
初始化的知识点
Test::Test(int a)
:ma(false), //ma=false
:mp(b) //mp = b
{
}