在下面几种情况下不能视为重载:
1、返回值不同的函数不能视为重载
2、返回值是否为静态不能视为重载
3、数组和指针
int
fun(
int
*ptr);
int
fun(
int
ptr[]);
// redeclaration of fun(int *ptr)
4、函数和函数指针
void
h(
int
());
void
h(
int
(*)());
// redeclaration of h(int())
5、参数是否为const不能区分(但是对于类成员函数是可以的)
注意:const修饰指针形参或者引用形参的时候可以作为重载的标识,可以这么理解,由于指针或者引用作为形参的时候可以修改实参本身,
const修饰的时候是指指向的内容不能修改,所以能够作为区分重载的标识