看了其它回答,有的说是复制粘贴的问题,有的说头文件不能带点,但我自己试了一下,我这种应该都不是
1>C:\Users\DELL\source\repos\c++ prime\7\7.2\Salesdata.h(1,1): warning C4067: 预处理器指令后有意外标记 - 应输入换行符
1>C:\Users\DELL\source\repos\c++ prime\7\7.2\Salesdata.h(2,1): error C2008: “.”: 宏定义中的意外
#include <iostream>
#include "Salesdata.h"
using namespace std;
int main() {
Sales_data book;
book.read(cin, book);
book.print(cout, book);
return 0;
}
#ifndef SALES_DATA.H
#define SALES_DATA.H
using namespace std;
class Sales_data {
private:
string bookNo;
unsigned unites_sold = 0; //销售量
double price = 0.0; //单价
double totalprice = unites_sold * price; //总价格
public:
string isbn() const {
return bookNo;
}
Sales_data& combine(const Sales_data& rhs) {
unites_sold += rhs.unites_sold;
totalprice += rhs.totalprice;
return *this;
}
Sales_data add(const Sales_data& lhs, const Sales_data& rhs) {
Sales_data sum = lhs;
sum.combine(lhs);
return sum;
}
istream& read(istream& is, Sales_data& item) {
is >> item.bookNo >> item.unites_sold >> item.price;
return is;
}
ostream& print(ostream& os, const Sales_data& item) {
os << item.bookNo << " " << item.unites_sold << item.totalprice;
return os;
}
};
#endif // !SALES_DATA.H