C++ 容许在同一个作用域中的某个函数和运算符指定多个定义,称为 函数重载 和 运算符重载。
重载声明 一个与之前已经在该作用域声明过的函数使用方法既有相同名称的声明,但它们的参数列表和定义实现不同。
当您调用一个重载函数或重载运算符时,编译器通过把您所使用的参数类型与定义中的参数类型进行比较,决定选用最合适的定义。选择最合适的重载函数或重载运算符的过程,称为重载决策。
函数重载
就是在同一个作用域,我可以写几个同名函数,比如三年级二班,有很多个叫小明的同学,这几个小明同学肯定都是独立的个体存在,他们的体重,家庭肯定不一样,这样我们可以通过他爸是区长的小明,和他爸是程序⚪的小明来分别两个小明。
class xiaoming
{
public:
string name;
void father(int){};
void father(float){};
}
运算符重载
实质就是函数重载或函数多态。要重载运算符,需要使用被称为运算符函数的特殊函数形式,运算符函数形式:operatorp(argument-list),operator 后面的'p'为要重载的运算符符号。重载运算符的格式如下:
<返回类型>operator<运算符符号>(<参数表>)
{<函数体>}
重载运算符它存在就是能使两个对象进行运算。比如小明他爹年龄减去小红她妈年龄,得到小绿年龄,即小明爹-小红🐎=小绿。
class ming
{
public:
int age;
ming operator-(const human &hong){
human lv;
lv.age = this->age - hong.age;
return lv;
}
}