C++ Super-FAQ 『Deconstructor』

  • 析构顺序

与构造顺序相反:先构造、先析构。

 

  • 是否能重载析构函数?

不能。

因为析构函数名称相同且没有参数。

 

  • 是否能显示调用析构函数?

一般不行。

因为在代码运行至块结束,即}位置处,会自动调用该代码块内部局部对象的析构函数,若已经显示调用会导致重复析构问题。

特殊情况是使用placement new在指定位置构造对象,在销毁时必须显示调用析构函数,否则会导致内存泄露。

备注:若需要在代码块内部提前销毁某局部变量,用{}将指定代码包裹即可。

posted @ 2016-02-29 09:30  衍行  阅读(303)  评论(0)    收藏  举报