之前的笔记搬运
运算符重载
C++中预定义的运算符的操作对象只能是基本数据类型。但实际上,对于许多用户自定义类型(例如类),也需要类似的运算操作。这时就必须在C++中重新定义这些运算符,赋予已有运算符新的功能,使它能够用于特定类型执行特定的操作。运算符重载的实质是函数重载,它提供了C++的可扩展性,增强了代码可读性, 使代码更加简洁;
定义格式:
1 | <返回类型> operator <需要重载的运算符>(<参数表>) |
定义方式:
1 | 1. 全局函数 |
1 | class A |
需要注意的地方:
1 | - 成员函数的运算符重载, 左值永远是类对象 |
三种方式的总结:
1 | (1)一般情况下,单目运算符最好重载为类的成员函数;双目运算符则最好重载为类的友元函数。 |
注意事项:
1 | (1)除了类属关系运算符"."、成员指针运算符".\*"、作用域运算符"::"、sizeof运算符和三目运算符"?:"以外,C++中的所有运算符都可以重载。 |