乐趣区

关于c++:C-重载运算符和重载函数

C++ 容许在同一作用域中的某个函数和运算符指定多个定义,别离称为函数重载和运算符重载。

重载申明是指一个与之前曾经在该作用域内申明过的函数或办法具备雷同名称的申明,然而它们的参数列表和定义(实现)不雷同。

当您调用一个重载函数或重载运算符时,编译器通过把您所应用的参数类型与定义中的参数类型进行比拟,决定选用最合适的定义。抉择最合适的重载函数或重载运算符的过程,称为重载决策。

C++ 中的函数重载
在同一个作用域内,能够申明几个性能相似的同名函数,然而这些同名函数的形式参数(指参数的个数、类型或者程序)必须不同。您不能仅通过返回类型的不同来重载函数。

C++ 中的运算符重载
您能够重定义或重载大部分 C++ 内置的运算符。这样,您就能应用自定义类型的运算符。

重载的运算符是带有非凡名称的函数,函数名是由关键字 operator 和其后要重载的运算符符号形成的。与其余函数一样,重载运算符有一个返回类型和一个参数列表。

Box operator+(const Box&);
申明加法运算符用于把两个 Box 对象相加,返回最终的 Box 对象。大多数的重载运算符可被定义为一般的非成员函数或这被定义为类成员函数。如果咱们定义下面的函数为类的非成员函数,那么咱们须要为每次操作传递两个参数,如下所示:

Box operator+(const Box&, const Box&);

可重载运算符 / 不可重载运算符
上面是可重载的运算符列表:

退出移动版