自毁物体

时间:2010-10-06 23:23:28

标签: c++

只是想知道一个物体是否可以自毁。

考虑这种情况。

扩展线程对象的对象。

Session : Thread
{
  Session() {}
  ~Session() {}

  ThreadMain()
  {
     while(!done){
       /* do stuff ... */
       ... 
       // something sets done = true;
     }

     ~Client();
  }
};


void start_session()
{
   Session* c = new Session();
   Session->Start();
   // when I exit here, I've lost my reference to s.  But if the object
   // self destructs when done, I don't need it right?
}

在此过程中的某个地方,我们有一个名为start_session的函数来启动会话。 最终会话结束。

在传统方法中,我必须有某种Session对象列表 在调用new之后放在该列表中。

要清理对象,我必须弄清楚哪些已完成并调用清理 功能以后。

我认为如果他们能够清理自己可能会更有意义。可以这样做吗?

为什么呢?为什么不?更好的方法?

1 个答案:

答案 0 :(得分:5)

当会话循环退出时,您可以执行“删除此操作”

但请参阅https://isocpp.org/wiki/faq/freestore-mgmt