self-destruction相关内容

可以用“删除这个"吗?删除当前对象?

我正在编写一个链表,我希望结构的析构函数(一个节点结构)简单地删除自身,并且没有任何副作用.我希望我的列表的析构函数在自身上迭代调用 Node 析构函数(临时存储下一个节点),如下所示: //我的列表类有第一个和最后一个指针//我的每个节点都有一个指向上一个和下一个的指针//节点双链表::~双链表{节点 *temp = first();while (temp->next() != NULL){删 ..
发布时间:2022-01-01 18:06:43 C/C++开发

“删除这个"有什么用?

今天,我看到了一些遗留代码.在析构函数中有一个类似“delete this"的语句.我认为,这个调用将是递归的.为什么它有效? 我在Y!上进行了一些快速搜索,发现如果需要限制用户创建堆栈对象,我们可以将析构函数设为私有并提供删除实例的接口.在提供的接口中,我们必须在这个指针上调用delete. 还有其他情况可以使用这样的语句吗? 解决方案 “删除这个"通常用于引用计数的对象.对 ..
发布时间:2021-12-24 17:10:49 C/C++开发

对象应该在 C++ 中删除自己吗?

过去 4 年我一直在使用 C#,所以我对 C++ 中当前的最佳实践和常见设计模式很感兴趣.考虑以下部分示例: class 世界{上市:无效添加(对象*对象);无效删除(对象*对象);无效更新();}类火:对象{上市:虚空更新(){如果(年龄>burnTime){world.Remove(this);删除这个;}}} 在这里,我们有一个负责管理一组对象并定期更新它们的世界.火是一种可能在许多不同 ..

是“删除这个"吗?在 C++ 中允许吗?

是否允许 delete this; 如果删除语句是将在类的该实例上执行的最后一条语句?当然,我确信 this 指针所代表的对象是 newly-created. 我正在考虑这样的事情: void SomeModule::doStuff(){//在控制器中,SomeModule 的“this"对象是“当前模块"//现在,如果我想切换到一个新模块,例如:控制器-> setWorkingModul ..

如何使脚本在执行结束时自动删除?

是否可以制作一个 python 脚本,在 windows 中执行结束时删除 .py 文件(自删除)? 解决方案 我不确定删除内存中的文件是否是个好主意.尝试从关闭脚本进程的脚本运行批处理文件,然后删除脚本文件. 可能有一种自毁脚本的本机方法,但我不知道. 编辑:这是一个简单的示例,说明如何使用我描述的方法完成此操作: 在脚本中 # C:\test.py导入操作系统os. ..
发布时间:2021-09-25 19:41:29 Python

如何使对象从列表中删除自身.

所以我在列表中有一些对象.我想让我的对象有一个方法,当被调用时会从列表中删除它自己.我怎么能这样做? 解决方案 这是一个棘手的问题吗? 公共类 MyObject{public void RemoveFromList(List list){如果(列表==空)返回;list.Remove(this);}} ..
发布时间:2021-06-11 19:30:20 C#/.NET

自杀:Objective-C 对象调用自己的 -dealloc 方法

Objective-C 中的对象自杀是好习惯吗?也就是说,对于声明 [self dealloc] 的对象,-dealloc 允许像往常一样有序结束?主要风险是什么? 碰巧我有一个特定的例子,一个自定义计时器对象,它扩展了 NSObject 并包含一个 NSTimer 实例和一个 NSUInteger,它被设置为限制计时器触发的次数.当时间到时,对象告诉计时器 -invalidate 然后通过 ..
发布时间:2021-06-09 20:22:57 移动开发

具有脚本Powershell的自我删除文件夹

完成后,我一直试图让Powershell或批处理脚本删除包含我所有脚本的文件夹.最初,我尝试使用 Remove-Item -Path"C:\ Tool" -Recurse -Force ,如果在 C:\ Tool 以外的位置作为脚本运行,则没有任何问题.当从其中的脚本运行时,它将抱怨文件正在使用中.经过一番研究,我发现& cmd.exe/c rd/s/q"C:\ Tool" 效果更好,但是即使我关 ..

是“删除此"吗?允许在C ++中使用?

是否允许删除此内容>,如果delete-statement是将在该类实例上执行的最后一条语句?当然,我确定 this 指针所表示的对象是 new new创建的. 我正在考虑这样的事情: void SomeModule :: doStuff(){//在控制器中,SomeModule的"this"对象是“当前模块"//现在,如果我想切换到新模块,例如:控制器-> setWorkingModu ..

自毁应用程序

沿着的路线“这个磁带将在五秒内自毁。祝你好运,Jim” ... 它会不会一旦达到预设的使用时间或其他条件,应用程序是否可以删除自身(或它的可执行包装形式)? 或者,还有什么其他方法可以用于使应用程序无用吗? 这里的目标是让测试版到期,邀请用户获得更新的版本。 解决方案 这是可能的。为了解决JAR文件的锁定问题,您的应用程序可能需要生成后台进程,该进程在删除内容之前一直等待 ..
发布时间:2018-12-04 13:01:00 Java开发

Delphi:一个表单可以自由释放吗?

我有一个表单,我用来显示一些信息几秒钟。该表格可以自由吗?我可以在构造函数中启动一个计时器,然后在timer-event中调用self.free吗?或者这可能会导致麻烦吗? 解决方案 此外,使用表单,您可以调用释放。 它向表单发送一个CM_RELEASE消息。作为一个反应,它称为免费。 发布的优点是没有任何消息可以导致崩溃。 ..
发布时间:2017-04-24 23:35:43 Delphi

如何设计一个安全的和“自我毁灭的”电子邮件?

由于大多数人都知道,电子邮件是非常不安全的。即使在客户端和发送电子邮件的服务器之间使用SSL安全连接,消息本身也将是纯文本,而它跨越Internet的节点遍历,使其易于被窃听。 另一个考虑因素是发件人可能不希望邮件在一段时间后或在读取一次后即使是预期的收件人也是可读的。这有很多原因;例如,邮件可能包含可通过传票请求的敏感信息。 解决方案(我认为最常见的一种解决方案是将邮件发送到受信任的 ..
发布时间:2017-01-16 10:41:20 开发方法

是否有效直接调用(虚拟)析构函数?

在此答案 ,Ryan直接调用虚析构函数。我测试了VS2010中的代码,它正确地调用所有析构函数(用日志语句测试)。这是真的有效吗?这种方法的问题,缺点甚至是好点? 我只能认为它是一种真正强制重置实际类型的方法,即使他们不重写一个虚拟 reset 函数,因为他们至少必须清理它们的析构函数。 还有,调用析构函数带来什么样的副作用?在这样的析构函数调用之后使用对象是未定义的行为吗?如果立即用 ..
发布时间:2016-10-20 09:31:03 C/C++开发

是否可以使用“删除此”删除当前对象?

我在写一个链表,我想要一个结构的析构函数(一个Node结构体)来简单地删除自己,没有任何副作用。我想要我的列表的析构函数在自身上迭代地调用Node析构函数(暂时存储下一个节点),如下所示: 我的列表类有第一个和最后一个指针 //和我的节点都有一个指向前一个和下一个 //节点 DoublyLinkedList ::〜DoublyLinkedList { Node * temp = ..
发布时间:2016-10-13 11:50:31 C/C++开发

应该“删除该”从成员方法中调用?

我只是阅读这篇文章, Q:应该删除这个; 可以从成员方法中调用? 解决方案 通常这是一个坏主意,但它偶尔有用。 完全安全,只要您在删除后不使用任何成员变量,并且只要调用此方法的客户端理解它可以删除对象。 一个很好的例子如果你的类使用引用计数,这是有用的: void Ref(){ m_References ++; } void Deref(){ m_R ..
发布时间:2016-10-13 10:34:03 C/C++开发