送分啦 不料翻书 直接问你们啦
送分啦 不想翻书 直接问你们啦比如一个基类class A{public:A()~A()private:void kill()}void A::kill(
送分啦 不想翻书 直接问你们啦
比如一个基类
class A
{
public:
A();
~A();
private:
void kill();
};
void A::kill()
{
delete this;
}
我这样使用 A *a=new A();
这样销毁 a->kill();
正确么?会不会有什么问题?
[解决办法]
有点怪怪的
[解决办法]
楼主 为什么不用析构函数呢 自己编写函数。
[解决办法]
当然会有问题,怎么能自己删除自己啊。而且Kill函数还是私有的,这也太新手了吧
[解决办法]
上面的不行,但是你之前发的是OK的。
[解决办法]
析构函数不用显式调用的。程序结束的时候对象会自己调用。
你上面那种用法有点非主流。不过运行没有错误。
[解决办法]
[解决办法]kill函数式私有的。能直接调用吗?
[解决办法]this 不用自己释放吧!
[解决办法]弱弱的问一句,执行delete 不也是调用析构函数么
[解决办法]delete this;
这用法是可以的。在MFC的非模式对话框中,确确实实需要用delete this来释放自己。
[解决办法]有kill 方法,最好再加一个static 的创建方法,在这个方法里new 对象,然后把构造私有化。这样可以提供类的安全性
[解决办法]kill方法没有什么问题,COM中的release就是这么用的。不过这种写法一般不用,你这么写的目的是什么啊?
[解决办法]私欲函数肯定不能用。但这种用法让我感觉心里没底,实在是不习惯