請教一個模板類的問題~~~~~~

jjiaming jjiaming 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
請看以下代碼:
template <class T1,class T2>
class CList 
{
private:
int Compare(double num1,double num2);
int Compare(float num1,float num2);
int Compare(T1 num1,T1 num2);

public: void Sort(tmpList<T1,T2>* listHead);
};



template<class T1, class T2>
void CList<T1,T2>::Sort(tmpList<T1,T2>* listHead)
{
........
Compare(..);
...........
}

void main()
{
CTmpList<int,CUser*> IntList;
CTmpList<float,CUser*> FloatList;
CList<double,data*> DoubleList;

IntList.Sort(..);
FloatList.Sort(..);
DoubleList.Sort(..);
}

編譯出現以下錯誤
::Compare(float,float)' : member function already defined or declared
::Compare(double,double)' : member function already defined or declared

顯而易見,int Compare(T1 num1,T1 num2)函數實際上已經包含了對float,double類型的比較,所以會報這樣的錯。我的原意是想讓float類型的比較自動調用Compare(float num1,float num2) ,讓double類型的比較自動調用Compare(double num1,doublenum2) ,而其余類型而調用模板函數Compare(T1 num1,T1 num2),請問該如何實現?
...全文
评论 10
收藏 已收藏
分享
返回顶部
jjiaming
VC/MFC 16,550 成员 421,606 内容