练习6.39
int calc(int, int);
int calc(const int, const int);
第二条声明语句的形参类型有顶层const,并不影响传入函数的对象。因此第一条声明语句和第二条声明语句相同,重复声明。
int get();
double get();
这两个函数除了返回类型外其他所有的要素都相同,这是不允许的。编译时报错:无法重载仅按返回类型区分的函数。
int* reset(int*);
double* reset(double*);
形参类型不同,合法。
本文探讨了函数声明中的参数类型和返回类型如何影响函数的重载。首先,展示了顶层const不会改变函数签名,导致两个intcalc函数被视为相同,从而产生重复声明的问题。接着,通过对比get()函数的两个版本,说明仅凭返回类型不同不能作为区分重载函数的依据,会导致编译错误。最后,举例说明形参类型不同的reset函数是合法的重载。文章深入浅出地解析了C++中函数重载的规则和注意事项。
1078

被折叠的 条评论
为什么被折叠?



