- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
因此,我正在使用 C++ Primer,第 5 版。我在第 7.1.3 节,但由于很多人没有这本书,所以这里是它的底线:作者正在为图书交易类编写代码,并希望实现一个读取和打印功能以分别获取在一本书的数据中,然后打印它。以下是本书的功能:
// input transactions contain ISBN, number of copies sold, and sales price
istream &read(istream &is, Sales_data &item)
{
double price = 0;
is >> item.bookNo >> item.units_sold >> price;
item.revenue = price * item.units_sold;
return is;
}
ostream &print(ostream &os, const Sales_data &item)
{
os <<item.isbn() << " " << item.units_sold << " "
<< item.revenue << " " << item.avg_price();
return os;
}
让我有点困惑的是,为什么他们会陷入实际传递 IO 对象的麻烦之中。如果让我自己写这样一个函数,我会这样做:
void read()
{
cout << "Please input book number, units sold and price.";
cin >> item.bookNo >> item.units_sold >> price;
}
void print()
{
cout << item.isbn() << " " << item.units_sold << " "
<< item.revenue << " " << item.avg_price();
}
(item.isbn() 是一个返回书的 ISBN 的函数)
当然,我不是经验丰富的编程人员,而他们是,所以额外的复杂性背后一定有原因,或者只是我的方式是糟糕的编程习惯。你怎么看?
(请记住,在我和本书的代码中,都假定正确使用了 header 和声明/定义。)
最佳答案
书中的示例适用于 ostream
、ofstream
等,因此您可以使用 cout
以及任何打开的文件.
更好的方法可能是在运算符<<和运算符>>处实现,这样您就可以直接对对象使用该语法。
另一方面,您的示例仅适用于 cin
和 cout
,因此如果您决定需要输出到文件,则需要更改您的实现或添加另一个函数来执行此操作。
关于c++ - 这些IO功能可以换种方式完成吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19467114/
在 Vaadin 7.0,显示时JavaBean Table 中的数据与 BeanContainer ,用新数据刷新表的正确方法是什么? 最佳答案 该表通过监听器监视表项的属性。如果您通过表的 Ite
首先,我使用的是带有 Axis2 1.6.2 的 eclipse,我正在 tomcat 6 上部署我创建的 Web 服务。Web 服务是在 eclipse 中通过自上而下的方法创建的。 我被要求使对我
我已将 Rails 3.1.1 应用程序升级到 Rails 3.1.3,现在,对于每个请求,它仅响应错误数量的参数(3 for 1)。不幸的是,它没有说明错误在哪里,并且应用程序跟踪为空。我认为存在一
我是一名优秀的程序员,十分优秀!