我實現了引用計數指針(在本例中被稱爲SP
),我遇到了多態性問題,我認爲我不應該這樣做。智能指針和多態性
在下面的代碼:從BaseClass
SP<BaseClass> foo()
{
// Some logic...
SP<DerivedClass> retPtr = new DerivedClass();
return retPtr;
}
DerivedClass
繼承。使用普通的指針這應該已經工作了,但用智能指針它說"cannot convert from 'SP<T>' to 'const SP<T>&"
,我認爲它指的是智能指針的複製構造函數。
如何讓這種多態與引用計數指針? 我很欣賞代碼示例,因爲如果我遇到這個問題,顯然我會在這裏做一些錯誤。
PS:請不要告訴我使用智能指針的標準庫,因爲這是不可能的。
請發佈複製構造函數的代碼。 – Danvil 2010-04-21 11:53:14
在閱讀模板錯誤消息時,注意每個位置中「T」的含義非常重要。該錯誤可能表示類似無法將[SP =]與[T = DerivedClass]轉換爲常量SP ,並且[T = BaseClass]'表示額外信息是解決方案的一半。 –
2010-04-21 18:38:00