単純な複素数操作のためのコードを記述しようとしています。テンプレートクラスを使用していますが、演算子(特に+、 - 、*、/)のオーバーロードに問題があります。私は、テンプレートクラス内のオーバーロードを宣言しようとしているし、同じヘッダーファイルの後にそれらを定義します。次のようにテンプレートクラス内の加算演算子のオーバーロード
マイヘッダコードは次のとおりです。
#ifndef MY_CLASS_H
#define MY_CLASS_H
template <class T> class complex
{
private:
T re,im;
public:
// Constructors & destructor
complex(){re=im=0;}
complex(T r, T i){re=r; im=i;}
~complex(){}
// Return real component
T realcomp() const {return re;}
// Return imaginary component
T imagcomp() const {return im;}
// Overload + operator for addition
complex<T> operator+(const complex<T> &C);
....
};
#endif
#include<iostream>
#include<cmath>
using namespace std;
template <class T> complex<T>& complex<T>::operator+(const complex &C){
complex<T> A(re+C.realcomp(),im+C.imagcomp());
return A;
}
これは私がこれまでに解決することはできなかったと私は私が間違って行ってきたところ完全にはよく分からないエラーを返します。私の初心者で、私のコードがちょっと混乱していることを意味しています - 私は謝罪します。
ご協力いただければ幸いです。
にエラーを投稿することができ – EdChum