如何在线程之间传递指向类对象的指针,并使其在主线程完成执行后仍然存在?

| 这是我遇到的问题: 主线程创建类对象(mybaseclass * local = new childclass;),这些对象本质上是知道它们应该做什么的命令。然后,它将指向类对象的指针传递给套接字上的派生线程,然后用该对象完成主线程,并返回等待其他输入。然后,派生线程从队列中读取指针,但是当主线程完成时,指针所指向的类对象已被自动删除。一旦主线程执行完毕,如何使类对象持久化? 谢谢! 杰夫     
已邀请:
线程完成后,不会自动删除使用new关键字在堆上分配的对象。如果您确定它会被自动删除,则可能是其他地方有错误。否则,指针仍应指向有效对象。     
在主线程中,使用
new
在免费商店中创建对象:
mybaseclass* local = new childclass;
...请确保不要使用智能指针,因为当智能指针超出范围时,它将破坏对象。通过任何使用的方式将指针传递到工作线程,然后在完成工作线程后将其删除:
mybaseclass* thread_local = SomehowGetTheObject();
// MAGIC HAPPENS...
delete thread_local;
另外,如果您将基指针传递给派生类,请确保您的基类具有
virtual
析构函数。     

要回复问题请先登录注册