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)用於信號處理程序,但我同意使用代碼會使這更容易瞭解。 –