c++关于函数的习题

函数int sum(int a=1,int b=1,int c=3)可与下列哪个函数同时声明( )
A、
double sum(int);

B、
char sum(int,int);

C、
int sum(double);

D、
int sum(int,int,int);
答案是C AB为什么错了呢

因为函数的重载规则是根据函数的参数类型和参数数量来判断的。在C++中,函数的重载是根据函数的参数类型和参数数量来区分的,而与函数的返回类型无关。所以即使返回类型不同,只要参数类型和参数数量相同,就会被视为重复声明。
A、double sum(int); - 参数类型相同,但参数数量不同,所以不能与原函数同时声明。
B、char sum(int,int); - 参数类型相同,但参数数量不同,所以不能与原函数同时声明。

【以下回答由 GPT 生成】

AB选项是错误的,因为函数的重载是通过函数的参数类型和数量进行区分的。在A选项中,函数参数为int类型,不符合函数声明int sum(int a=1, int b=1, int c=3)中的默认参数b=1c=3。在B选项中,函数参数为两个int类型,也不符合函数声明中的默认参数。只有C选项的函数参数为double类型与原函数声明的默认参数无关,因此可以与之同时声明。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^