那么为什么void func(int a); void func(const int a);不是函数重载呢? 一
void func(int* a); void func(int* const a); //不是函数重载 二
void func(int* a); void func(const int* a); //是函数重载 三
一、const修饰的是变量a; 所以这两个类型相同,不是函数重载;
二、const修饰的是变量a; 所以这两个类型相同,不是函数重载;
三、const修饰的是int 类型,不是在修饰变量a了,所以这两个类型不同,是函数重载;
所以只有三是满足函数重载条件的,它们两个是重载函数。
自己理解:其实运算符重载的本质就是编译器给你起了个固定的名字,你可以对这个名字进行更多的函数重载;