【发布时间】:2014-08-13 12:52:29
【问题描述】:
我在活动中使用 TCPServer。 为了简化我的设计,我将我的活动从 TCPServerConnectionFactory 设为 ihnerit。 这样,我的活动就实现了 CreateConnection() 方法。
为了创建我的 TCPServer 我做了:
Poco::Net::TCPServer(this, serverSocket);
不幸的是,当我的 TCPServer 被破坏时,它也破坏了我在参数中给出的(this)。所以它调用了我的活动的 dtor,这真的很烦人。
深入查看 Poco 代码,我看到 TCPServer 创建了一个 Poco::shared_Ptr of (this),当这个 Shared_Ptr 被销毁时,它删除了 shared_ptr 的内容。
如何在 TCPServer 生命周期结束时将 (this) 传递给 TCPServer 而不会被破坏?
【问题讨论】:
标签: c++ shared-ptr poco-libraries