2010-07-19 160 views
17

我知道大多數操作員的姓名,但不知道調用了哪些operator<<operator>>叫什麼「operator <<」?

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

等等...

+0

它取決於操作數。 – Gumbo 2010-07-19 13:59:28

+25

我喜歡稱他們爲'<<' and '>>',但對某些人來說發音有點困難。 – 2010-07-19 13:59:33

+1

w.r.t是iostream頭,<<是提取運算符。 (>>是插入)。很調皮。 – 2010-07-19 14:05:00

回答

15

<<左移

>>右移

+3

啊。因此,運營商<<的使用已被混淆爲流實施。即std :: cout <<「你好媽媽」<< std :: endl。 – ScaryAardvark 2010-07-19 13:57:32

+5

@ScaryAardvark:它叫超載 – 2010-07-19 13:59:07

+5

在語言學中它被稱爲[bastardisation](http://en.wiktionary.org/wiki/bastardisation)。 – dreamlax 2010-07-19 14:02:00

7
<< = Bitwise left shift 
>> = Bitwise right shift 
32

<<既是插入運算符又是左移運算符。
>>是提取運算符和右移運算符。

在iostreams的情況下,它們被認爲是流插入/提取。在位移的情況下,它們是左移和右移。

+1

+1你有一個重要的區別。操作符的名稱根據它的使用方式而改變(更重要的是,它使用的是什麼類型的數據)。由於這個特點,我聽說''雙號'和'雙號'符號被稱爲'<<' and '>>'的符號作爲以上下文無關的方式引用符號的通用方式(類似於你可以無論它們如何被重載,都可以調用'+'「加號」或'/'「斜槓」),但這絕不是官方的。 – bta 2010-07-19 15:33:14

1

< <是'左移'運算符。它將其第一個操作數左移第二個操作數指定的位數。

15

在C++流,

  • <<是插入運算符。
  • >>是提取操作符。

二元運算中,

  • 右移(>>)
  • 左移(< <)
4

原來的名字是左移運營商(<<)和右移運營商(>>),但他們的意思是ngs被流轉換爲插入和提取,你可以爭辯說,即使在按位運算中,<<插入位,而>>提取它們。因此,我幾乎總是把它們稱爲插入提取運營商。

0

他們被稱爲Guillemet左和Guillemet右符號:)

+0

你有參考嗎?還是諷刺只是飛過我的頭? – 2010-07-19 15:31:00

+0

他們*看起來像* Guillemet標誌,但稱他們這樣會暗示每個'<<'需要關閉'>>'。我見過一些初學程序員,他們注意到相似性,並直接嘗試直接使用「«」和「»」字符:) – bta 2010-07-19 15:37:29

+0

關於需要關閉的好處 - - 對我自己來說太聰明瞭!它們實際上也用於Perl:http://en.wikipedia.org/wiki/Guillemets – 2010-07-19 20:31:57