オーバーロードされた 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 つのオブジェクトを作成しているだけで (2 番目のオブジェクトはコピー コンストラクターを呼び出します)、それらを一緒に追加しようとします。
int main(){
Kvader<int> object1, object2(object1);
object1 = object1 + object2;
return 0;
}