有如下程序: #include using namespace std; void fun(int i) { cout

admin2015-07-22  84

问题 有如下程序:
        #include
        using namespace std;
        void fun(int i)    { cout<<"int i / "; }
        void fun(double d) { cout<<"double d / "; }
        void fun(char* p)  { cout<<"char *p / "; }
        int main() {
            fun(0);
            return 0;
        }
进行编译、链接、运行的结果是

选项 A、编译出错,无法运行
B、输出:int i /
C、输出:int i /
D、char *p /

答案B

解析 程序中有三个重载fun函数,形参类型分别为:int类型,double类型和char*类型,main函数中,调用fun函数,实参为0,编译器需要确定重载函数中的最佳匹配,虽然0可以隐式转换为double类型、char*类型,但是fun(0)可以和原型形参为int类型的函数精确匹配,所以将会调用原型为fun(int)的函数,输出int i / ;答案为B。
转载请注明原文地址:https://kaotiyun.com/show/q8Np777K
0

最新回复(0)