0
我有2個類,A和B和B是從A派生的,我不允許改變它們。我正在實施智能指針類。模板繼承類派生基指派
template <typename T>
class SmartPtr{
...
SmartPtr& operator=(const SmartPtr& p);
...
}
template<typename T>
SmartPtr<T>& SmartPtr<T>::operator=(const SmartPtr & p) {
++*p.cnt;
if(--*cnt == 0) {
delete ptr;
delete cnt;
}
ptr = p.ptr;
cnt = p.cnt;
return *this;
}
當我嘗試將SmartPtr A分配給SmartPtr B時,由於操作數類型不同,我得到錯誤。我如何解決這個問題,而不需要改變A和B?
有智能指針實現plnety。你爲什麼要實現一個? –
您可以發表[MCVE](http://stackoverflow.com/help/mcve) – Alejandro
['std :: shared_ptr']的接口(http://en.cppreference.com/w/cpp/memory/shared_ptr)在實現智能指針時是一個很好的指導。 –