我正在尝试将对象作为重载 operator+ 的参数传递(并且该类是模板类),但它给了我一个错误,其中指出:
error C2955: 'Kvader': use of class template requires template argument list
这是我的课:
template <class Q>
class Kvader {
private:
Q a, b, c;
public:
Kvader(const Kvader &temp);
Kvader operator+(Kvader);
};
这是我的重载+方法:
template <class Q>
Kvader Kvader<Q>::operator+(Kvader<int> temp) {
a += temp.a;
b += temp.b;
c += temp.c;
return *this;
}
我以为
Kvader Kvader<Q>::operator+(Kvader<int> temp)
作为参数列表就足够了。我究竟做错了什么?
在我的主体中,我只是制作了 2 个对象(第二个对象调用了复制构造函数),然后我尝试将它们加在一起。
int main(){
Kvader<int> object1, object2(object1);
object1 = object1 + object2;
return 0;
}