C++primer第五版 第一章 习题1.25
关于书店程序
书中的案例程序某一段如下:
if (total.isbn()==trans.isbn())
{
total += trans;
}
else {
std::cout << total << std::endl;
total = trans;
}
但是我发现在编译的时候total.isbn()==trans.isbn()这里总是报错,好像是提示参数之类的。
网上提供的头文件试了几个都不成功,于是我在头文件里发现下面的代码
bool same_isbn(const Sales_item&)const;
尝试用这个方法修改代码
#include <iostream>
#include "Sales_item.h"
int main() {
Sales_item total;
if (std::cin >> total)
{
Sales_item trans;
while(std::cin>>trans)
{
if (total.same_isbn(trans))
{
total += trans;
}
else {
std::cout << total << std::endl;
total = trans;
}
}
std::cout << total << std::endl;
}
else {
std::cerr << "no data?!" << std::endl;
return -1;
}
return 0;
}
成功!