0
我有以下:C++的shared_ptr的std ::绑定和std ::功能
类B
侦听C
类的boost::signal2
并且当触发将执行由A
类已知回调并且在类执行的方法A
A
,B
和C
,D
都是std::shared_ptr
。
问题是,当类D
释放指向类B
的指针时,由于信号处理程序,B
未被删除。即使我呼吁在boost::connection
断开连接,我也有同样的问题。
任何想法如何解决这个问题?
你能告诉我们一些代码吗? – Frank
是的,如果没有足够的代码让人们理解内部发生了什么,这不是没有用的。 –
我想你想要的是['std :: weak_pointer'](http://en.cppreference.com/w/cpp/memory/weak_ptr)用于信号处理程序,但我同意使用代码会使这更容易了解。 –