我目前正在爲==操作符創建一個重載函數。我爲我的鏈表創建一個hpp文件,我似乎無法讓這個操作符在hpp文件中工作。重載==功能
目前,我有這樣的:
template <typename T_>
class sq_list
{
bool operator == (sq_list & lhs, sq_list & rhs)
{
return *lhs == *rhs;
};
reference operator *() {
return _c;
};
};
}
我得到大約10錯誤,但他們幾乎重複的錯誤:
C2804:二進制 '操作符==' 有太多的參數
C2333 :'sq_list :: operator ==':函數聲明中的錯誤;跳過功能體
C2143:語法錯誤:缺少';' '*'前
C4430:缺少類型說明符 - 假定爲int。注意:C++不支持默認int
我試圖改變周圍的事情,但我constanly得到同樣的錯誤如上
任何提示或這種援助是極大的讚賞。
你需要sqlist –
Flexo
2012-02-18 00:55:26
如果它是一個成員函數,它需要一個藝術,並使用這個 – Flexo 2012-02-18 00:56:44
@awoodland:不,你不需要;在類模板定義中,僅模板名稱可以引用當前模板實例。無論如何,OP的代碼中沒有'T'。 – 2012-02-18 00:58:13