c++ primer 第五版的Sales_data类
来源:互联网 发布:xampp mac使用教程 编辑:程序博客网 时间:2024/06/05 07:36
这个书店程序在c++ primer第五版中可是贯穿了大概两百页(我才看到二百多页)啊,终于看完了。看着书上的代码,终于的写完了Sales_data类,毕竟初学,很多地方不熟悉,写的和书上有些差距,有些地方修改了,简化了一些。本来出错时还想参考一下Sales_item类,发现看不太懂啊。。。 等到水平高了,再写一次。
#include <iostream>#include <string>class Sales_data{ //声明友元函数 friend Sales_data add(const Sales_data&, const Sales_data&); friend std::ostream &print(std::ostream&, const Sales_data&); friend std::istream &read(std::istream&, Sales_data&);public: //构造函数 Sales_data ()://书上有个Sales_data () = default;的语句,不知道为啥我放在这里编译时就报错,无奈,去掉了 bookNo(" "), units_sold(0), revenue(0) {} Sales_data(std::istream &is)//按照书上,这个是用来练习在类外部定义构造函数,课时我出错了,就把他放到类里面了 { read(is, *this); } std::string isbn() const {return bookNo;}//返回isbn Sales_data& combine(const Sales_data&);//声明combine函数,函数功能是吧isbn相同的书的数据加到一块 double avg_price() const//求平均价格,书上232页定义在了类的外部,240页又定义在了类的内部。。。我是定义在了内部 { return units_sold ? revenue/units_sold : 0; }private: std::string bookNo;//isbn unsigned units_sold = 0;//卖出的书的册数 double revenue = 0.0;//总收益};Sales_data add(const Sales_data&, const Sales_data&);//接受两个Sales_data对象,返回一个新的Sales_data对象,表示前两个对象之和std::ostream &print(std::ostream&, const Sales_data&);//将数据读取到对象中std::istream &read(std::istream&, Sales_data&);//将对象的内容打印到给定的流中Sales_data& Sales_data::combine(const Sales_data &rhs)//在类的外部定成员函数{ units_sold += rhs.units_sold; revenue += rhs.revenue; return *this;//返回一个this对象}std::istream &read(std::istream &is, Sales_data &item){ double price = 0; is >> item.bookNo >> item.units_sold >> price; item.revenue = price * item.units_sold; return is;}std::ostream &print(std::ostream &os,const Sales_data &item){ os << item.isbn() << " " << item.units_sold << " " << item.revenue << " " << item.avg_price(); return os;}Sales_data add(const Sales_data &lhs, const Sales_data &rhs){ Sales_data sum = lhs; sum.combine(rhs); return sum;}
1 0
- c++ primer 第五版的Sales_data类
- C++primer第五版课后习题销售类Sales_data的编写
- C++ Primer 第五版中的Sales_data类---用来模拟Sales_item类的实现
- c++primer 第五版
- C++ Primer书中第二章经常用到的Sales_data类
- C++Primer 第五版 3.类设计者的工具
- c++ primer中定义sales_data类,整个书店程序如下
- C Primer Plus 第五版
- 《C++primer第五版》第一章
- c++primer(第五版)3.17
- c++primer(第五版)3.19
- c++primer(第五版)3.21
- C++Primer第五版第一章
- C Primer Plus(第五版)中文版的问题
- C++Primer第五版【笔记】——第七章 类
- 《C++primer(第五版)》学习之路-第七章:类
- C++primer第五版笔记-第七章类
- C++primer (第五版)第七章 类(有关类的相关定义)
- 蓝桥杯 — 基础练习 特殊回文数(思路+详解)
- 使用CocoaPods过程中的几个问题
- 【BZOJ2243】【SDOI2011】染色(树链剖分+线段树)
- WEB前端面试重点
- iOS block 小结
- c++ primer 第五版的Sales_data类
- 【学习C++】1.开始学习C++
- nyoj 236 心急的C小加
- 带有同步清0、同步置1的D触发器模块描述及其Testbench测试
- HDU Common Subsequence
- android 读写sd卡的权限设置
- Fibonacci数列
- html基础
- s3c2440学习笔记 存储管理器