c – 重载逻辑运算符被认为是不好的做法?

重载&&,||是一个坏主意或逗号运算符和为什么?

解决方法:

我不会超载运算符&&或运算符||.即使你定义了一个产生布尔代数的类(例如有限集),它也可能是一个更好的选择来重载运算符&和运算符|.

原因是C程序员期望运算符&& amp;的特殊语义.和运算符||:它们是短路的,即如果没有必要则不评估它们的右手参数.您不能通过重载来获得此行为,因为您将定义一个函数.

重载运算符,已在例如Boost.Assign库.这也是我所知道的超载的唯一例子,我自己从未考虑过载.你最好有一个非常具体的用例,没有其他运算符适合.

上一篇:python:!=和<>之间的区别?


下一篇:Scala Operators, File & RegExp