很抱歉的壞稱號基類的賦值運算符......我有一個基類,如:我可以在返回子類類型
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