第十四章 14.4节练习
来源:互联网 发布:java的构造方法 编辑:程序博客网 时间:2024/05/16 19:44
练习14.20
为你的Sales_data类定义加法和复合运算符。
解答:
符合运算符可以参考书中实现。之后,通过调用复合运算符来实现加法运算符。
练习14.21
编写Sales_data类的+和+=运算符,使得+执行实际的加法操作而+=调用+。相比14.3节(第497页)和14.4节(第500页)对这两个运算符的定义,本体的定义有何缺点?试讨论。
解答:
<pre name="code" class="cpp">Sales_data Sales_data::operator+(const Sales_data &rhs){ Sales_data sum;sum.units_sold = units_sold + rhs.units_sold;sum.revenue = revenue + rhs.revenue;return sum;}
Sales_data& Sales_data::operator+=(const Sales_data &rhs){*this = *this + rhs;return *this;}
这个实现比较其前面的实现,多了很多不必要的拷贝步骤和创建Sales_data的步骤,在性能上没有前面版本来得高效。
练习14.22
定义赋值运算符的一个新版本,使得我们能把一个表示ISBN的string赋给Sales_data对象。
解答:
Sales_data& Sales_data::operator=(string& str){bookNo = str;return *this;}不过感觉没这么简单,但是用initializer_list又不大可能(参数类型不一),就写了这个简单的实现,感觉有点怪。
练习14.23
为你的StrVec类定义一个initializer_list赋值运算符。
解答:
参考书中500页的实现。
练习14.24
略
练习14.25
略
0 0
- 第十四章 14.4节练习
- 第十四章 14.1节练习
- 第十四章 14.3节练习
- 第十四章 14.7节练习
- 第十四章 14.8节练习
- 第十四章 14.2.1节练习
- 第十四章 14.2.2节练习
- 第十四章 14.8.1节练习
- 第十四章 14.8.2节练习
- 第十四章 14.8.3节练习
- 第十四章 14.9.1节练习
- 第十四章 14.3.1节练习 & 14.3.2节练习
- 第十四章 14.5节练习 & 14.6节练习
- 第十四章 14.9.2节练习 & 14.9.3节练习
- simply scheme 第十四章 练习
- 第十四章编程练习(1)
- 第十四章编程练习(2)
- 第十四章编程练习(3)
- VMware中ubuntu忘记密码的解决办法
- 接口与抽象类
- Debian-7.6下升级glibc至2.15
- 红黑树,B树,B+树,B-树 理解
- 【Unity3D】Unity3D默认的快捷键
- 第十四章 14.4节练习
- HDU 3397——Sequence operation(线段树,区间染色+区间异或+区间合并)
- matlab中hmm的使用示例
- 数据库总结(5)——数据库管理
- 红黑树
- Java面向对象——封装性
- What is ViewData, ViewBag and TempData? – MVC options for passing data between current and subsequen
- 以太网帧结构解析
- VMware网络的三种模式和Linux网络配置