第四章 过程抽象——函数(四)

来源:互联网 发布:mysql判断语句怎么写 编辑:程序博客网 时间:2024/06/05 09:46
第12题
第一、二都能正确匹配。
第一个匹配的是void func(int,double),理由是'c'根据整型提升转换原则,转换为int,3.0跟double精确匹配。
第二个匹配的是void func(long,double),理由是3L精确匹配long,3根据标准转换匹配,可以配上double。

后三个都不能正确匹配
第三个,第一个参数是char*,彻底没有匹配的。
第四个,3L匹配long,而'c'则匹配char,会在func(long,double)和func(int,char)之间产生歧义。
第五个,true通过整数提升转换为int,而“3”则通过标准转换,即能转成char,也能转成double,两者无先后之分。

第13题
为了慎重起见,俺先研究完教材正文,再来解答本题。

第14题
因为,C++规定,内联函数名具有文件作用域,即各个源文件中定义的同名内联函数属于不同的函数。所以,为了防止同一个内联函数的各个定义之间的不一致,往往把内联函数的定义放在某个头文件中,在需要使用该内联函数的源文件中用文件包含命令#include把该投文件包含进来。
原创粉丝点击