c – 重载逻辑运算符被认为是不好的做法?
作者:互联网
重载&&,||是一个坏主意或逗号运算符和为什么?
解决方法:
我不会超载运算符&&或运算符||.即使你定义了一个产生布尔代数的类(例如有限集),它也可能是一个更好的选择来重载运算符&和运算符|.
原因是C程序员期望运算符&& amp;的特殊语义.和运算符||:它们是短路的,即如果没有必要则不评估它们的右手参数.您不能通过重载来获得此行为,因为您将定义一个函数.
重载运算符,已在例如Boost.Assign库.这也是我所知道的超载的唯一例子,我自己从未考虑过载.你最好有一个非常具体的用例,没有其他运算符适合.
标签:c,operator-overloading,operators,logical-operators 来源: https://codeday.me/bug/20191007/1869265.html