#include
#include
using namespace std;
#ifndef ALL
#define ALL
#define _CRT_SECURE_NO_WARNINGS 1
struct sales_data {
//类数据成员
string bookno; unsigned units_sold = 0; double sellingprice = 0; double saleprice = 0; double discount = 0;
//类构造函数,有四个
sales_data() = default; sales_data(const string& book) :bookno(book) {}
sales_data(const string& book, const unsigned num, const double sellp, const double salep);
sales_data(istream& is){
is >> *this;//此处会报错 }
};
#endif
你得先自问一下,*this是什麽东西呢???
是sales_data类对象,但std::istream>>怎么可能认识这个雷对象呢?
你得给类鞥家>>操作符重载函数才行,这个重载函数会告诉std::istream怎么样输出saies_data类对象
或者你这里不要>> * this,而是逐个数出类成员变量,比如>>bookno>>units_sold这样子。但在构造函数里输出毫无意义,这些成员变量还没有赋值呢,输出它干啥呢?