2012-11-09 75 views
0

的原因類構造函數具有這樣的聲明...確定共享指針類型類不完整或不完整和崩潰

Class A: 
{ 
    public: 
A(int a, SharedPtr<class T>sp = SharedPtr<class T>()); 
~A(); 
} 
從另一個類我摧毀這個類作爲共享指針像

現在

delete (SharedPtr<A>*)(*iter); 

現在,作爲一個結果,崩潰checked_delete<class T>

任何人可以說的就是這個SharedPtr<class T>sp是不完整的這裏或什麼是崩潰的原因。

回答

0
delete (SharedPtr<A>*)(*iter); 

這是什麼意思?

1)爲什麼選擇SharedPtr<A>?你確定演員安全嗎?什麼類型是iter*iter返回什麼?

2)爲什麼要在地球上刪除共享的ptr?你在堆上創建了一個共享的ptr?!這破壞了共享ptr的全部目的。您可以在堆棧上創建它並根據需要複製它,但不會在堆上創建它。

相關問題