只显示主题贴
比如这样的代码就存在细微的区别(类似C++和Java的虚拟语言):
class User {
public static void remove(User** user) {
delete(*user);
*user = NULL; // 外面的指针被置空
}
public void kill_self(void) {
delete(this);
this = null; // 影响不到外面的指针
}
public User(void) {
th ...
- 进入论坛 海阔天空 版
gigix 写道diogin 写道xqstation 写道user1.delete();
自杀了。。。
User.delete(user1);
而让集合delete则构成他杀。
SO。。。
楼主自己找个豆腐解决吧。。。
你还真说对了,我现在就是被这两种选择弄得很头疼
我怎么就看不出这两个有啥区别呢?
对于不能在方法内部删除对象本身的内存的语言,还是有区别的,因为 User.delete(user1) 里面可以delete/free掉user1,而 user1.delete() 则做不到这一点。
我觉得如果user1对应的外部数据记录已经删除,则user1也不应该在内存里存在,不知大家有什么 ...
- 进入论坛 海阔天空 版
xqstation 写道user1.delete();
自杀了。。。
User.delete(user1);
而让集合delete则构成他杀。
SO。。。
楼主自己找个豆腐解决吧。。。
你还真说对了,我现在就是被这两种选择弄得很头疼
- 进入论坛 海阔天空 版
taowen 写道在java中,我认为应该是包含这个对象的集合的行为。没有自杀一说的,只是从一个容器中移走而已。
在c++中可以理解为释放内存吧。也不是它自己的行为,而是拥有这个指针的函数或者容器的行为。
也就是说应该是“它杀”是吧,我指的“杀”就是释放它的内存。最近忽然想起ActiveRecord中的模型对象好像是“自杀”的,即调用对象的remove方法,删除它所关联的数据库记录,不知Rails中是否如此实现。个人觉得这种实现不好,remove后对象本身的内存还在,存在悬空引用,而且对象方法内似乎也不能delete掉this?不知C++中是否如此?
- 进入论坛 海阔天空 版
原来往注册表里加了个自动启动的注册表项:HKCU\Software\Microsoft\Windows\CurrentVersion\Run,鄙视这种行为
- 进入论坛 海阔天空 版







评论排行榜