标签: self-destruction

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

是否有可能制作一个python脚本,在Windows中执行(自删除)时删除.py文件?

python windows self-destruction

14
推荐指数
4
解决办法
1万
查看次数

Delphi:表单可以自行释放吗?

我有一个表单,用于显示一些信息几秒钟.表单可以自由释放吗?我可以在构造函数中启动一个计时器,然后在timer-event中调用self.free吗?或者这可能会导致麻烦吗?

delphi self-destruction

13
推荐指数
2
解决办法
7314
查看次数

自我删除bash脚本

即使在遇到要删除自身的语句之后,bash脚本如何执行?例如,当我运行test.sh脚本时,该脚本具有以下特征:

<--some commands-->
rm test.sh
<--some more commands-->

end
Run Code Online (Sandbox Code Playgroud)

脚本在删除之前执行到结束

bash self-destruction

13
推荐指数
1
解决办法
7874
查看次数

面向对象的自杀或删除此;

以下使用MSVC9.0编译的代码运行并输出Destructor四次,这是合乎逻辑的.

#include <iostream>
class SomeClass
{
public:
   void CommitSuicide()
   {
      delete this;
   }
   void Reincarnate()
   {
      this->~SomeClass();
      new (this) SomeClass;
   }
   ~SomeClass()
   {
      std::cout  << "Destructor\n";
   }
};

int main()
{
   SomeClass* p = new SomeClass;
   p->CommitSuicide();
   p =  new SomeClass;
   p->Reincarnate();
   p->~SomeClass(); //line 5
   p->CommitSuicide();
}
Run Code Online (Sandbox Code Playgroud)

我认为main中的前4行代码不会导致未定义的行为(尽管不完全确定delete this;).我想要确认或<占位符确认的反义词>.但我对第5行和第6行有严重怀疑.允许显式调用析构函数,不是吗?但在此之后,对象的生命周期是否已经完成?也就是说,在析构函数的显式调用允许(定义)后调用另一个成员?

总而言之,上述代码的哪些部分(如果有的话)会导致未定义的行为(从技术上讲)?

c++ destructor self-destruction delete-operator

10
推荐指数
2
解决办法
2231
查看次数

是否可以在C中编写自毁程序?

是否可以在C中编写一个程序,在执行时删除自身(二进制文件)然后成功终止.如果是这样,最简单的方法是什么?

c self-destruction

10
推荐指数
2
解决办法
5670
查看次数

是否可以使用"删除此项"删除当前对象?

我正在编写一个链表,我想要一个struct的析构函数(一个Node结构)来简单地删除它自己,并且没有任何副作用.我希望我的列表的析构函数迭代地自己调用Node析构函数(临时存储下一个节点),如下所示:

//my list class has first and last pointers
//and my nodes each have a pointer to the previous and next
//node
DoublyLinkedList::~DoublyLinkedList
{
    Node *temp = first();

    while (temp->next() != NULL)
    {
        delete temp;
        temp = temp->next();
    }
}
Run Code Online (Sandbox Code Playgroud)

所以这将是我的Node析构函数:

Node::~Node
{
   delete this;
}
Run Code Online (Sandbox Code Playgroud)

这是否可以接受,特别是在这种情况下?

c++ destructor linked-list this self-destruction

7
推荐指数
1
解决办法
2237
查看次数

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

这个答案中,Ryan直接调用虚拟析构函数.我已经在VS2010中测试了代码,它正确地调用了所有析构函数(使用日志记录语句测试).这样做真的有效吗?这种方法有哪些问题,缺陷甚至是好处?

我只能将它视为真正强制重置实际类型的一种方法,即使它们不覆盖虚reset函数,因为它们至少必须在它们的析构函数中清理.

另外,对析构函数的调用会带来什么样的副作用呢?在这样的析构函数调用之后使用该对象是不确定的行为?如果一个人立即通过new (this) MyClass();电话重新初始化该怎么办?

c++ self-destruction virtual-destructor

7
推荐指数
1
解决办法
3393
查看次数

Service Worker 什么时候应该自毁?

我发现这个 repo 描述了如何销毁 service worker。但是我没有找到任何描述工人何时应该销毁/卸载/取消注册自己的资源。

当我开发网站时,我经常使用端口 8080。我可以在有 Service Worker 的站点 X 上工作,然后在没有 Service Worker 的站点 Y 上工作,但原来的和现在不正确的 Service Worker 仍然存在。

Service Worker 决定自行卸载的逻辑有点棘手,因为我们想要:

  • 允许 Service Worker 离线工作。
  • 允许 Service Worker 在强制 wifi 门户中幸存下来。
  • 检测浏览器在线但该站点不应该有 Service Worker,或者 Service Worker 应该是不同的。

是否有围绕此的标准机制或约定?

javascript offline self-destruction service-worker progressive-web-apps

7
推荐指数
1
解决办法
342
查看次数

一个对象如何在一个事件中自我破坏,在javascript中?

我有这个功能,可以即时创建DIV.但现在,我想在onclick事件中销毁这个对象,但我只是不知道如何.

function creatediv(id) {

    var newdiv = document.createElement('div');
    newdiv.setAttribute('id', id);
    newdiv.onclick=function(){this=null;};  //bad function
    document.body.appendChild(newdiv);

} 
Run Code Online (Sandbox Code Playgroud)

我错过了什么?

谢谢

javascript dom object self-destruction

6
推荐指数
3
解决办法
6772
查看次数

如果std :: vector元素'自杀'会发生什么(使用delete this;)?

假设有一个Items 向量

vector<Item*> items; //{item1, item2, item3}
Run Code Online (Sandbox Code Playgroud)

然后,在代码的其他部分,

items[1]->suicide();
Run Code Online (Sandbox Code Playgroud)

其中suicide函数为:

void Item::suicide()
{
   delete this;
}
Run Code Online (Sandbox Code Playgroud)

什么是items矢量大小以及它现在的排列方式?这是做呢?

编辑(我可以问一个额外的问题吗?):如果输出的所需排列是{item1, item3},大小是2,并且没有悬空指针,如何以自毁方式(从它item2自身)进行?

编辑2:谢谢你的所有答案!真棒.所以我最终决定并找到了从对象外部做到这一点的方法,因为这是一种不好的做法而且不必要地复杂化

c++ vector self-destruction

3
推荐指数
2
解决办法
1482
查看次数