【问题标题】:What is "operator<<" called?什么叫“运算符<<”?
【发布时间】:2011-03-17 22:28:24
【问题描述】:

我知道大多数操作员的名字,但不知道operator&lt;&lt; 和operator&gt;&gt; 叫什么。

即

operator=() // the assignment operator
operator==() // the equality of comparison operator
operator++() // the increment operator
operator--() // decrement operator etc.
operator<() // the less-than operator

等等……

【问题讨论】:

  • 我喜欢叫他们&lt;&lt;和&gt;&gt;,但是发音对有些人来说有点难。
  • w.r.t iostream 标头,> 是插入)。很淘气。
  • 远小于和远大于 ;)
  • 遗憾的是,这份全面的参考资料对此事只字未提...oops.se/~urban/pit/intercal.ps
  • @Vulcan:实际上不是相反吗?

标签: c++ operators


【解决方案1】:

&lt;&lt; 既是插入运算符又是左移运算符。
&gt;&gt; 是提取运算符和右移运算符。

在 iostreams 的上下文中,它们被认为是流插入/提取。在位移的上下文中,它们是左移和右移。

【讨论】:

  • +1 你做出了重要的区分。运算符的名称会根据其使用方式(更重要的是,它正在使用的数据类型)而变化。由于这种特殊性,我听说&lt;&lt; 和&gt;&gt; 符号被称为“双左”和“双右”符号,作为以无上下文方式引用符号的通用方式(类似于你怎么称呼+“加号”或/“斜线”,不管它们是如何超载的),但这绝不是官方的。
【解决方案2】:

在 C++ 流中,

  • &lt;&lt; 是插入运算符。
  • &gt;&gt; 是提取运算符。

在二元运算中,

  • 右移 (>>)
  • 左移 (

【讨论】:

    【解决方案3】:

    &lt;&lt;左移

    &gt;&gt;右移

    【讨论】:

    • 啊。因此,对于流实现,操作符
    • @ScaryAardvark:这叫做重载
    • 在语言学中称为bastardisation。
    • @SigTerm 等人:+ 添加整数并连接字符串,这是混蛋吗?我不认为
    • @Scott Stafford:“连接字符串”,连接的结果包含两个原始字符串,它是它们的“总和”,因此是 +。够合乎逻辑的。 “我不认为
    【解决方案4】:
    << = Bitwise left shift
    >> = Bitwise right shift
    

    【讨论】:

      【解决方案5】:

      【讨论】:

        【解决方案6】:

        原来的名字是left shift操作符(&lt;&lt;)和right shift操作符(&gt;&gt;),但是它们的含义被流歪曲成插入和提取,您可能会争辩说,即使在按位运算中 &lt;&lt; inserts 位在右侧,而 &gt;&gt; 提取 它们。因此,我几乎总是将它们称为 insertion 和 extraction 运算符。

        【讨论】:

          【解决方案7】:

          【讨论】:

            【解决方案8】:

            它们被称为 Guillemet Left 和 Guillemet Right 符号:)

            【讨论】:

            • 你有没有参考。还是讽刺只是在我头上飞过?
            • 它们看起来像 Guillemet 标记,但这样称呼它们意味着每个&lt;&lt; 都需要一个结束&gt;&gt;。我见过一些初学者注意到相似之处并犯了试图直接使用«和»字符的错误:)
            • 关于要求关闭的好点>> - 太聪明了,不利于我自己!它们实际上也用于 Perl:en.wikipedia.org/wiki/Guillemets
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-03-23
            • 1970-01-01
            • 1970-01-01
            • 2012-05-11
            • 2013-07-31
            相关资源
            最近更新 更多