我正在努力定义 friend 运算符功能。我的代码如下:
template <typename typ>
class VecClass
{
public:
VecClass();
/* other class definitions */
friend void operator+(VecClass op1,VecClass op2);
}
template <typename typ>
void VecClass<typ>::operator+(VecClass<typ> &op1,VecClass<typ> &op2)
{
/* do some stuff on op1 and op2 in here */
}
VecClass是用于创建 vector 并在这些 vector 上执行各种功能的类(注:我已简化代码以尝试并使其尽可能清晰)。编译时,使用
int main()
{
VecClass=a,b;
a+b;
return 0;
}
我收到以下编译错误
error C2039: '+' : is not a member of 'VecClass<typ>'
我显然缺少了一些东西,将不胜感激。谢谢
最佳答案
您声明了一个 friend 运算符,而不是类成员,因此删除VecClass<typ>::
template <typename typ>
void operator+(VecClass<typ> &op1,VecClass<typ> &op2)
{
/* do some stuff on op1 and op2 in here */
}