gpt4 book ai didi

C++ 在模板中使用运算符关键字?

转载 作者:搜寻专家 更新时间:2023-10-31 00:18:12 26 4
gpt4 key购买 nike

我正在努力定义友元运算符函数。我的代码如下:

    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>'

我显然遗漏了一些东西,如果有任何建议,我将不胜感激。谢谢。

最佳答案

你声明了一个友元运算符,而不是类成员,所以删除 VecClass<typ>::

template <typename typ>
void operator+(VecClass<typ> &op1,VecClass<typ> &op2)
{
/* do some stuff on op1 and op2 in here */
}

关于C++ 在模板中使用运算符关键字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11329784/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com