函数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=1
和c=3
。在B选项中,函数参数为两个int
类型,也不符合函数声明中的默认参数。只有C选项的函数参数为double
类型与原函数声明的默认参数无关,因此可以与之同时声明。