懂C++的帮解一道题,看补充

问题描述:

懂C++的帮解一道题,看补充
函数int sum(int a=l,int b=1,int c=3)可与下列哪个函数同时声明( )
A.double sum(int);\x05B.char sum(int,int);
C.int sum(double);\x05D.int sum(int,int,int);

简单的说,返回值是干扰因素,去掉返回值之后,这五个声明就是
sum(int a=l,int b=1,int c=3)
double sum(int);
char sum(int,int);
int sum(double);
int sum(int,int,int);
最开始的sum因为3个形参都有了默认参数,所以sum有3种调用方式,分别是
设 int a,b,c;
那么题目给出的sum的调用手段有
sum();
sum(a);//相当于调用一个sum(int)
sum(a,b);//相当于调用一个sum(int,int)
sum(a,b,c);//相当于调用一个sum(int,int,int)
所以选项给出的A、B、D三个答案都不行,只有C答案的相当于sum(double),和上面的几种调用方式都不冲突,所以C题目里说的“与函数同时声明”是什么意思呢?请详细的解释下,不太明白- -。其实就是指两个函数同时在一个程序里面而已因为一个程序不能包含两个完全一样的函数,或者两个会有冲突的函数简单的说就是你在程序里面一起声明 int sum(int a=l,int b=1,int c=3){} 和 int sum(double){} 不会报错,不够你要是这样一起声明 int sum(int a=l,int b=1,int c=3){} 和 int sum(int){} 就会有错,无法编译