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

admin2019-06-07  30

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

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

答案A

解析 程序中有三个重载fun函数,形参类型分别为:char类型,double类型和char*类型,main函数中,调用fun函数,实参为0,编译器需要确定重载函数中的最佳匹配,由于0可以隐式转换为char类型、double类型、char*类型,均不能精确匹配,所以该函数调用具有二义性,编译出错;答案为A。
转载请注明原文地址:https://kaotiyun.com/show/4h8p777K
0

最新回复(0)