class MyClass { public: char *p; MyClass() { p = new char[1]; p[0] = 'a'; p[1] = 0; }
~MyClass() { delete [] p; p = 0; } };
int _tmain(int argc, _TCHAR* argv[]) { MyClass _2010_9_25_b(); MyClass c = _2010_9_25_b(); void _2010_9_25_c(); _2010_9_25_c();
int a = 1;
return 0; }
MyClass _2010_9_25_b() { return MyClass(); }
void _2010_9_25_c() { MyClass(); }
|
实例代码的main函数中,方法_2010_9_25_b中创建的MyClass类型的对象赋值给了对象c,一直等main方法return 1时才会调用析构函数来销毁对象c中指针p所指向的堆数据;而方法_2010_9_25_c中创建的MyClass类型的对象在跳去函数后即调用了析构函数。
阅读(1464) | 评论(0) | 转发(0) |