C++Primer第五版 6.6节练习
来源:互联网 发布:淘宝生活服务市场清退 编辑:程序博客网 时间:2024/06/05 22:52
练习6.49:什么是候选函数?什么是可执行函数?
答:候选函数:函数匹配的第一步是选定本次调用对应的重载函数集,集合中的函数称为候选函数。
可行函数:从候选函数中选出能被这组实参调用的函数,这些新选出的函数称为可行函数。
练习6.50:已知有第217页对函数f的声明,对于下面的每一个调用列出可行函数。其中哪个函数是最佳匹配?如果调用不合法,是因为没有可匹配的函数还是因为调用具有二义性?
(a) f(2.56, 42) (b) f(42)(c) f(42,0)(d) f(2.56,3.14)
答:声明如下:
void f();void f(int);void f(int, int);void f(double,double = 3.14);
a. f(2.56,42)//可行函数 void f(int, int); //2.56可以转化int即2//可行函数 void f(double, double)//产生二义性错误2.56double精确匹配,42 int精确匹配b. f(42)//可行函数, void f(int)//可行函数 void f(double, double) ,相当于 f(42,3.14)//最佳匹配 void f(int)c. f(2.56,3.14)//可行函数 void f(int, int); //2.56可以转化int即2, 3.14转化为 int即3//可行函数 void f(double, double)//最佳匹配void f(double, double)
练习6.51:编写函数f的4个版本,令其输出一条可以区分的信息。验证上一个练习的答案,如果你回答错了,反复研究本节的内容知道你弄清楚自己错在何处。
答:见云盘程序,和上一题全符合
练习6.51
/**练习6.51*2015/6/25*问题描述:练练习6.51:编写函数f的4个版本,令其输出一条可以区分的信息。验证上一个练习的答案,如果你回答错了,反复研究本节的内容知道你弄清楚自己错在何处。*功能:比较 *作者:Nick Feng *邮箱:nickgreen23@163.com * */#include <iostream>using namespace std;void f(){ cout << "call f()... " << endl; }void f(int a){ cout << "The value is:" << a << endl; cout << "call void f(int)..." << endl;}void f(int a, int b){ cout << "a is:" << a << " b is:" << b << endl; cout << "call void f(int, int)..." << endl; }void f(double a, double b = 3.14){ cout << "a is: " << a << " b is:" << b << endl; cout << "call void f(double, double)..." << endl; }int main(){ //#ifndef NDEBUG //f(2.56, 42); no macthing for call to f(double ,int) //cerr << __func__ << "may occurs something wrong!" << endl; //#endif f(42); f(42,0); f(2.56,3.14); return 0;}
0 0
- C++Primer第五版 6.6节练习
- C++Primer 第五版 1.1节练习
- C++Primer第五版 1.3节练习
- C++Primer第五版 1.6节练习
- C++Primer第五版 2.4节练习
- C++Primer第五版 3.1节练习
- C++Primer第五版 4.2节练习
- C++Primer第五版 4.3节练习
- C++Primer第五版 4.4节练习
- C++Primer第五版 4.6节练习
- C++Primer第五版 4.7节练习
- C++Primer第五版 4.8节练习
- C++Primer第五版 4.9节练习
- C++Primer第五版 4.5节练习
- C++Primer第五版 5.1节练习
- C++Primer第五版 5.2节练习
- C++Primer第五版 6.1节练习
- C++Primer第五版 6.4节练习
- scala学习笔记(五) 类
- 图像滤镜艺术---Wave滤镜
- ip介绍
- linux下weblogic 12c 之集群技术
- Android Studio更新升级方法
- C++Primer第五版 6.6节练习
- Oracle Sql相关记录
- 图像滤镜艺术---球面(Spherize)滤镜
- linux入门教程
- 微信接口封装
- scala学习笔记(六)包与引入
- urho3D编译文档工程出现的BUG
- Servlet Get方式请求数据 中文乱码 转码
- Yii权限管理工具Srbac使用小结