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

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

练习6.39

说明在下面的每组声明中第二条声明语句是何含义。如果有非法的声明,请指出来。

(a)

int calc(int, int);

int calc(const int, const int);

(b)

int get();

double get();

(c)

int *reset(int *);

double *reset(double*);

解答:

(a) 

第二条是计算两个常量整型的数。

不合法,第二条无法和第一条进行区分。

(b) 

获得double类型的get()

不合法,不能使用不同的返回值类型对函数进行重载。

(c) 

重置一个double类型的数。

合法。

练习6.40

下面的哪个声明是错误的?为什么?

(a) int ff(int a, int b = 0, int c = 0);

(b) char *init(int ht = 24, int wd, char bckgrnd);

解答:

这两个声明都是合法的,但是第二个是不合理的。

第二个函数声明的第一个参数使用了默认实参。

这会让调用的时候有些理解上的问题,是向init传两个参数?还是三个参数?

如书中所说,没有提供实参的话,默认实参才会使用到,所以这里还是需要传递三个参数的,

否则程序无法编译通过。

练习6.41

下面的那个调用是非法的?为什么?哪个调用虽然合法但显然与程序员的初衷不符?为什么?

char *init(int ht, int wd = 80, char bckgrnd = ' ');

(a) init();

(b) init(24, 10);

(c) init (14, '*');

解答:

(a)调用是非法的。这里init函数至少需要传递进去一个参数,而这个调用没有传递参数,ht参数没有得到实参,必然会出现编译错误。

(c)是合法的,但是与初衷不符。这里应该是想将ht置为14, bckgrnd置为‘*’。而结果是,ht为14,wd为‘*’的ASCII码值,bckgrnd还是‘ ’

练习6.42

给make_plural函数的第二个形参赋予默认参数‘s’,利用新版本的函数输出单词success和failure的单数和复数形式。

解答:

#include 
#include
using namespace std;string make_plural(size_t ctr, const string &word, const string &ending = "s"){ return (ctr > 1) ? word + ending : word;}int main(){ string str1 = "success", str2 = "failure"; cout << make_plural(1, str1, "es") << endl; cout << make_plural(2, str1, "es") << endl; cout << make_plural(1, str2) << endl; cout << make_plural(2, str2) << endl;}

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

你可能感兴趣的文章
【Java】内存泄漏与内存溢出 学习总结
查看>>
【Java】命名规范
查看>>
【Java】—— java基础篇
查看>>
【Java】—— JVM篇
查看>>
【Java】【Linux】【操作系统】知识重点——操作系统篇
查看>>
【Java】【多线程】—— 多线程篇
查看>>
【计算机网络】—— TCP/IP篇
查看>>
【Java】【算法】——算法篇
查看>>
【Java】【数据库】知识重点——数据库篇
查看>>
【Java】知识重点——消息队列篇
查看>>
【Java】学习总结 —— HashMap之put()方法实现原理
查看>>
【计算机网络】【TCP】如何讲清楚Tcp的三次握手和四次挥手?
查看>>
【Java】-- Java核心知识点总结
查看>>
【数据库】SQL之重点知识点总结
查看>>
【计算机网络】计算机网络知识总结
查看>>
【Java】【Web】JavaWeb相关知识总结 2018-9-17
查看>>
【数据库】突破单一数据库的性能限制——数据库-分库分表总结 2018-9-20
查看>>
【Java】Java常用包的功能 2018-09-21
查看>>
【Java】Map接口主要的四个常用实现类 2018-9-22
查看>>
【Java】HttpServletRequest常用方法2012-9-22
查看>>