>>演算子をオーバーロードしようとしています。私は過負荷のために以下のコードを書いて、メインでそれを使用しようとしました。私は "演算子なし" >> "これらのオペランドと一致する"とc2679のエラーがあります。私はインターネットを見渡しましたが、解決策を見つけることができませんでした。演算子のオーバーロード ">>"エラー
ここに私の演算子オーバーロードがあります。
friend istream& operator >> (istream &in, Polynomial &polynomial)
{
in >> polynomial.e;
if (polynomial.e > 20)
throw "Bad Input!";
polynomial.x = new double[polynomial.e];
for (int i = 0; i < polynomial.e; i++) {
polynomial.x[i] = 0;
in >> polynomial.x[i];
}
return in;
}
と主にこのコードで使用tryingto。
out << "poly 1" << endl;
Polynomial *newPol1 = new Polynomial();
try {
cin >> newPol1;
}
catch (char* s)
{
cout << s << endl;
}
は、あなたが、その後
std::cin >> newPol1;
に
std::cin >> (*newPol1); // dereference pointer
を変更するには、ポインタを使用する必要がある場合は、ここでPolynomial
を型へのポインタにstd::cin
を使用しようとしている
オペレータが '多項式ない' Polynomial'、* 'のために過負荷になっています。あなたのコードをポインタの使用をやめる方がずっと簡単になります –