fin*_*oop 5 c++ operator-overloading
重载运算符时,是否需要重载> = <=和!=?
对于c ++而言,似乎很聪明地调用!operator = for!=,!> for operator <= and!<for operator> =.
是这种情况,还是必须超载每个功能?
是的,如果您希望所有这些都按照您希望的方式工作,那么这是必要的。
C++ 不会对大多数可重载运算符强制任何特定语义。唯一固定的是运算符的一般语法(包括一元或二元以及优先级和结合性等)。这立即意味着您在重载中实现的实际功能可以是绝对任意的。==一般情况下,操作员所做的事情和操作员所做的事情之间可能没有任何有意义的联系!=。运算符==可能将数据写入文件,而运算符!=可能对数组进行排序。
虽然以如此任意的方式重载运算符肯定不是一个好的编程实践,但 C++ 语言不能假设任何事情。所以,不,它不能也不会自动使用! ==组合代替!=,或! >组合代替<=。
| 归档时间: |
|
| 查看次数: |
1652 次 |
| 最近记录: |