我实现了引用计数指针(在本例中被称为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