利用栈变量跳出作用域的时候,会自动调用析构函数,
可以做个自动释放内存的类:
template<class _Ty>
class auto_delete_ptr
{
public:
explicit auto_delete_ptr(_Ty *_Ptr)
: _Myptr(_Ptr)
{
}
~auto_delete_ptr()
{
if(NULL != _Myptr)
delete _Myptr;
}
private:
_Ty *_Myptr;
};
下面过程:调用了10次CTestClass类的构造函数和析构函数
for(int i = 0; i < 10; ++i)
{
CTestClass vObj;
printf("%d\n", vObj.a);
}