1

こんにちは、挿入演算子と抽出演算子をオーバーロードしました。プログラムを実行すると、抽出が値をクラスに入れていますが、挿入は値を出力していないようです。インスタンスの挿入ビューには値がないようです。

主要

/ Input Poly
cout << "Input p1: " << endl;
Polynomial P1;
cin >> P1;

// Output Poly
cout << "p1(x) = " << P1 << '\n' << endl;

クラス関数

//Insertion
ostream& operator<<(ostream& os, Polynomial Poly){

for (int i=0; i < Poly.polyNum; i++) {
    os << Poly.poly[i] << " x^" << i;

    if(i != Poly.polyNum - 1){
        os << " + ";
    }
}

return os;
}

//Extraction
istream& operator>>(istream& is, Polynomial Poly){

int numP = 0;
int * tempP;

is >> numP;

tempP = new int [numP+1];

for (int i=0; i < numP; i++) {
    is >> tempP[i];
}

Poly.polyNum = numP;

Poly.poly = new int[Poly.polyNum +1];

for (int i=0; i < Poly.polyNum; i++) {
    Poly.poly[i] = tempP[i];
}

return is;
}
4

1 に答える 1

4
istream& operator>>(istream& is, Polynomial Poly)

する必要があります

istream& operator>>(istream& is, Polynomial& Poly)

今行っていることは、オブジェクトのコピーのメンバーを変更するだけです。

Polynomial P1;
cin >> P1;

P1これ以降は変更されません。

于 2012-09-27T14:19:41.620 に答える