我目前正在为==操作符创建一个重载函数。我为我的链表创建一个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