私はC++プライマー第五edition.Iがむき出しの骨Sales_itemクラスを持っていると読んでいますが、これはmain.cppにファイルは」です(「>>演算子」の一致なしエラー:オペランドの型がのstd ::はistream
#include <iostream>
#include "Sales_item.h"
int main() {
Sales_item book;
std::cin >> book ;
}
。
Sales_item.h
#ifndef BOOKSTORE_SALES_ITEM_H
#define BOOKSTORE_SALES_ITEM_H
#include <iostream>
class Sales_item {
};
#endif //BOOKSTORE_SALES_ITEM_H
Sales_item.cppは空です。私はC++プライマーブックを次のです。だから私はそれがこの時点では空のままにすることであると仮定しています。
私はこのエラーを取得し、ビルドに失敗します。
error: no match for 'operator>>' (operand types are 'std::istream {aka std::basic_istream<char>}' and 'Sales_item')
私はあなたのクラスで演算子を実装していないと推測します。私が推測しなければならないのは、あなたがあなたのクラスを見せていないということです。 –
'Sales_item'に' >> 'をオーバーロードする必要があります –
https://stackoverflow.com/help/mcveを参照 – Destructor