什么是`& |'运算符,它来自哪里?

时间:2015-07-27 04:59:55

标签: c++ operator-overloading operators

大约有一半的时间this page有一个“限制”部分,其中指出:“无法创建**<>&|等新操作符”。< / p>

我知道**是python的取幂运算符,我知道<>是来自PHP的“spaceship”(compareTo)运算符。究竟是什么&|

更正<=>是“太空船”,<>!=

的常见替代品

2 个答案:

答案 0 :(得分:2)

该页面试图说明的是,您无法在C ++中创建尚未作为运算符存在的运算符。换句话说,<>今天不是C ++中的运算符,因此您无法T operator<>(U x, U y)来定义此运算符的作用。这是一个无效的组合。同样,列出的其他“符号”。 C ++定义了一组给定的运算符,+-%/*<<>>和还有很多。允许这些覆盖(使用用户定义的类型)。但是这种语言不允许程序员发明他/她自己的符号并将它们变成运算符。

这有助于通过一组固定的词法定义良好的运算符来解析代码。除了您在阅读时会产生的混淆,这是不可能的。

 if (x <&^> y) ...

 x = y +- 11;

[{1}}或<&^>应该是什么意思?]

当然,它也可能导致与现有运营商的混淆,但它至少比编制他/她自己的版本和变体的程序员更容易混淆。

其他语言确实对其他符号有意义的事实取决于这些语言。直到符号在C ++中可用(并且有时会引入一些新的运算符,尽管很少),它们作为C ++运算符无效。

答案 1 :(得分:0)

&amp; |的唯一用法被称为:比特运算符..
它不是用在编程语言中,而是用来表达某些东西......我想知道结果和/或(&amp; |)是否匹配某事......

相关问题