为每种基本类型定义了哪些运算符?

时间:2013-10-02 20:45:53

标签: c++ operators

使用C#后,我惊讶地发现C ++浮点数没有定义模数运算符。显然也不是按位运算符。我决定学习更多内容并寻找一个图表,其中列出了哪些基类型为其定义了运算符,哪些没有,但我找不到任何这种性质。

我知道所有操作符是什么以及如何重载它们: http://en.wikipedia.org/wiki/C%2B%2B_operators

但是,我不知道为每种基类型定义了哪些运算符。

1 个答案:

答案 0 :(得分:1)

所有运算符都定义为整数类型(charshortintlonglong longenum)。对于浮点类型(floatdoublelong double),您没有%,也没有“按位”运算符:<<,{ {1}},>>~&|,因为它们对浮点数没有多大意义。例如,您对^的期望是什么? [1]或3.3 ^ 6.8? [1]浮点除法中没有“余数”,因此很难设想它实际上应该给出什么。

正如评论中所述,1.9 % 13.4fmod做了类似的事情。

[1]这些是修辞问题,我不指望任何人能够得出一个好的答案。