您好我已经重载了插入和提取运算符。当我运行我的程序时,插入似乎不输出值,尽管提取将值放入类中。 看起来实例的插入视图中没有值。
主要
/ 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;
}
答案 0 :(得分:4)
istream& operator>>(istream& is, Polynomial Poly)
应该是
istream& operator>>(istream& is, Polynomial& Poly)
您现在正在做的只是更改对象的副本的成员:
Polynomial P1;
cin >> P1;
在此之后 P1
不会被修改。