【发布时间】:2012-03-09 09:31:19
【问题描述】:
我目前正在为 == 运算符创建一个重载函数。我正在为我的链表创建一个 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:二进制 'operator ==' 参数过多
C2333:'sq_list::operator ==' : 函数声明错误;跳过函数体
C2143:语法错误:缺少“;”在'*'之前
C4430:缺少类型说明符 - 假定为 int。注意:C++ 不支持 default-int
我尝试过改变,但总是遇到与上述相同的错误
非常感谢任何提示或帮助。
【问题讨论】:
-
如果它是一个成员函数,它需要一种艺术并使用它
-
@awoodland:不,你没有;在类模板定义中,模板名称可以单独引用当前模板实例。无论如何,OP 的代码中都没有
T。
标签: c++ templates operators operator-overloading equals-operator