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)在实现智能指针时是一个很好的指导。 –