自毁物体

Mat*_*att 1 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?
}
Run Code Online (Sandbox Code Playgroud)

在某个地方,我们有一个名为start_session的函数,它启动一个会话.最终会话结束.

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

要清理对象,我必须弄清楚哪些已完成,稍后再调用清理函数.

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

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

pm1*_*100 5

当会话循环退出时,你可以"删除这个"

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