第十二章 12.1.1节练习
来源:互联网 发布:最新版学越南语软件 编辑:程序博客网 时间:2024/05/16 11:47
练习12.1
在此代码的结尾,b1和b2各包含多少个元素?
StrBlob b1;{ StrBlob b2 = {"a", "an", "the"}; b1 = b2; b2.push_back("about");}
解答:
在b2被销毁前,b1和b2中都应该有4个元素。
因为使用shared_ptr的目的,就是程序需要在多个对象间共享数据。
所以,这两个对象的数据是共享的。
练习12.2
编写你自己的StrBlob类,包含const版本和front和back。
解答:
如果是第一次读到这里,或者时间有限。
建议将书中的实现抄写一份,至少能达到在一个工程中编译成功。
在通过使用,进行单步调试,来了解该类是如何运作的。
练习12.3
StrBlob需要const版本的push_back和pop_back吗?如果需要,添加进去。否则,解释为什么不需要。
解答:
出于对数据的保护,还是应该进行添加的。
这两个操作,都涉及到对成员变量的修改操作。
为了保证共享对象的元素不会在这个操作中修改状态,还是需要加上const的。
练习12.4
在我们的check函数中,没有检查i是否大于0。为什么这个可以忽略这个检查?
解答:
是size_type这个类型。这个类型从cplusplus reference中看是等价于size_t的,所以不用担心它的值会小于0。
练习12.5
我们未编写一个接受initializer_list explicit(参见7.5.4节,第265页)参数的构造函数。讨论这个设计策略的优点和缺点。
解答:
explicit参数的构造函数只能用于直接初始化过程。
这样做的好处是,我们可以在一开始的时候就对类对象进行初始化,不必再为对象是否有初始值而担忧。
缺点,这样可能会降低使用的灵活性(自己感觉都很勉强,暂时也想不出有什么缺点了)
0 1
- 第十二章 12.1.1节练习
- 第十二章 12.1.2节练习
- 第十二章 12.1.3节练习
- 第十二章 12.1.6节练习
- 第十二章 12.1.4节练习 & 12.1.5节练习
- 第十二章 12.2.2节练习 & 12.3.1节练习
- 第十二章编程练习(1)
- 第十二章 12.3.2节练习
- 第十二章 编程练习
- 第十二章练习
- simply scheme 第十二章 练习
- 第十二章编程练习(2)
- 第十二章编程练习(3)
- 第十二章编程练习(5)
- 第十二章编程练习(6)
- 第十二章上机练习3
- Java第十二章练习习题
- C Primer Plus 第十二章 编程练习 1-8题
- Python新手上路备忘记录
- 【索引】String Algorithms
- Arima预测模型(R语言)
- 使用Service类
- 读了借来的《牧羊少年的奇幻之旅》
- 第十二章 12.1.1节练习
- rule.mk
- 关于wampserver 局域网访问问题
- iOS SVN的使用
- SGU 520 Fire in the Country 博弈SG函数(或者YY一下)
- vim常用快捷键
- 多线程安全
- pyInstaller
- SVM模型预测