+演算子をオーバーロードして2つのクラスに分けようとしています。 Polynomialと呼ばれる各クラスの中には、polyStructという名前のStructがあります。データを追加してからその合計を戻します。しかし、私は運がない。型の無効なオペランドクラスポインタとクラスのバイナリ演算子へのポインタ+
完全なエラーがあります。エラー:ここではバイナリ「演算子+」への種類の無効なオペランド「多項式*」と「多項式*」
は私のクラスである:ここでは
class Polynomial {
public:
Polynomial();
Polynomial(ifstream *data);
Polynomial* copyPolynomial();
Polynomial* add(Polynomial *sec);
Polynomial operator+(const Polynomial& sec);
Polynomial* subtract(Polynomial *sec);
//poly operator-(const poly&);
bool equalPoly(Polynomial *sec);
double evaluate(int x);
int getDegree();
void print();
private:
struct poly {
int exp;
double coeff;
} *polyStruct;
List polyList;
};
は私の演算子オーバーロードです:私のoperaterを使用しようとすると
Polynomial Polynomial::operator+(const Polynomial& sec) {
Polynomial temp = new Polynomial();
temp.polyStruct->exp = polyStruct->exp;
temp.polyStruct->coeff = polyStruct->coeff + sec.polyStruct->coeff;
return temp;
}
私は次のことをやっている: newPoly =メイン+秒を。 すべての変数は個別に初期化された多項式です。 何が間違っているのかに関するアイデアはありますか?