|
发表于 2004-11-26 18:21:02
|
显示全部楼层
2,要销毁堆中的对象就是new来的对象要用delete
比如将a=info(...),要销毁对象a就用delete &a。
而在析构函数里只是释放对象所占用的资源,比如类
中有一个指针,用new为给指针在堆中分配了空间,就要在析构函
数里delete这个指针释放对象的资源。
栈中的对象在超过他的生命期,系统会自动调用析构函数销毁
堆中的对象必须用delete销毁
delete对象时实际上调用了类的析构函数。
改一下,把a=info()改成a=&info().a=info要调用拷贝构造函数或=运算符
要给a分配空间,a=&info()的话就不分配空间了,a的到的时info里面* pitem
的空间。要销毁a直接delete &a就可以了。 |
|