很抱歉的坏称号基类的赋值运算符......我有一个基类,如:我可以在返回子类类型
template<class T>
class GPtr
{
public:
typedef T BaseType;
GPtr& operator=(const BaseType& rhs)
{
...
}
};
我经常想使子类的专门化,如:
class GraphicPtr : public GPtr<Graphic>
{
...
};
但是我的基类赋值运算符仍返回GPtr<Graphic>
没有GraphicPtr
,它的恼人必须复制粘贴代码的情况下,核心赋值运算符的功能应该在以后更改。
是否有一种简洁的方式来定义基类赋值运算符,以便返回正在使用的实际类的类型?
为什么不写函数,真的可以在所有派生类中进行赋值和调用? – ForEveR 2013-04-25 09:08:12
这里解决的真正问题是什么?不是解决方案的语法问题,而是解决方案似乎具有返回对派生类型的引用的赋值运算符的实际问题。有几件事情不清楚,比如为什么'GPtr <> :: operator ='接受一个'T'参数(错误地命名为'BaseType'),你想达到什么目的? – 2013-04-25 13:12:45