博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第六章 6.5.3节练习 & 6.6节练习
阅读量:2423 次
发布时间:2019-05-10

本文共 954 字,大约阅读时间需要 3 分钟。

练习6.47

改写6.3.2节(第205页)练习中使用递归输出vector内容的程序,使其有条件地输出与执行过程有关信息。例如,每次调用是输出vector对象的大小。分别在打开和关闭调试器的情况下编译并执行这个程序。

解答:

这里具体的程序就不写了,216页有例程可以参考。

在VS中命令行定义宏的方式和linux下命令行有区别,/DXXX,在书中216页中也有提到。

练习6.48

说明下面这个循环的含义,它对assert的使用合理吗?

string s;

while(cin >> s && s != sought){}//空函数体

assert(cin);

解答:

不合理,这里判断的是标准输入是否为空,或者是否读到最末尾。

在while循环中cin已经读完了,已经为空或者到了结尾。

所以,这里的assert肯定会被触发。

练习6.49

什么是候选函数?什么是可行函数?

解答:

【引用】函数匹配的第一步就是选定本次调用对应的重载函数集,集合中的函数称为候选函数。

【引用】从候选函数中选出能被这组实参调用的函数,称为可行函数。

练习6.50

已知有第217页对函数f的声明,对于下面的每一个调用列出可行函数。其中那个函数是最佳匹配?如果调用不合法,是因为没有可匹配的函数还是因为调用具有二义性?

(a) f(2.56, 42);

(b) f(42);

(c) f(42, 0);

(d) f(2.56, 3.14);

解答:

(a) 有二义性。不确定是掉f(double, double = 3.14),还是f(int, int).

(b) 合法,和f (int)匹配

(c) 合法,和f (int, int)匹配

(d) 合法,和f(double, double=3.14)匹配

练习6.51

编写函数f的四个版本,令其个输出一条可以区分的消息。验证上一个练习的答案,如果你回答错了,反复研究本节的内容直到你弄清楚自己错在何处。

解答:

void f(){}void f(int){}void f(int, int){}void f(double, double = 3.14){}int main(){	f(2.56, 42);	f(42);	f(42, 0);	f(2.56, 3.14);}

转载地址:http://iwqlb.baihongyu.com/

你可能感兴趣的文章
nginx/tengine限制流量如何配置
查看>>
cron和crontab命令详解 crontab 每分钟、每小时、每天、每周、每月、每年定时执行 crontab每5分钟执行一次
查看>>
mysql使用索引优化order排序
查看>>
mysql复合索引、普通索引总结
查看>>
mysql explain中的using filesort
查看>>
MYSQL explain详解
查看>>
MySQL查询优化-explain
查看>>
Linux 技巧:让进程在后台可靠运行的几种方法
查看>>
Java IO 以及 NIO 详解
查看>>
Java 反射和动态代理真的没那么高深,一起来看看就知道了
查看>>
java线程与死锁问题,讲的太详细太好懂了,再也不用怕了
查看>>
chinaunix
查看>>
Lucky
查看>>
ERP100 論壇,ORACLE ERP
查看>>
ORA-600
查看>>
不止 5G 和鸿蒙,华为最新大招,扔出 AI 计算核弹
查看>>
【早报】做Java半年,挣的不如AI 1个月?第二句泪目..
查看>>
反转!2019程序员吸金榜来了,AI程序员刷爆了..
查看>>
学Python后到底能干什么?网友:我太难了
查看>>
华为、BAT力捧!程序员:我彻底慌了...
查看>>