2015-10-09 44 views
5

在查找的C++維基百科上的運營商列表,我發現了一篇文章約operator synonyms爲什麼C++需要操作符同義詞?

C++定義[6]的關鍵字來作爲別名一些運營商:和(& &),BITAND( (||),bor(|),or_eq(| =),xor(^),xor_eq(^ =),not(!),not_eq(!=)和compl (〜)。這些符號的使用方式與它們替換的標點符號的使用方式完全相同,因爲它們不是使用不同名稱的相同運算符,而是相應運算符的名稱(字符串)的簡單標記替換。這意味着表達式(a> 0和標誌)和(a> 0 & &標誌)具有相同的含義。這也意味着,例如,bitand關鍵字不僅可以用來替換位運算符,也可以用來替換運算符的地址,它甚至可以用來指定引用類型(例如,int bit和ref = n) 。 ISO C規範允許將這些關鍵字作爲頭文件iso646.h中的預處理器宏。爲了與C兼容,C++提供了頭文件ciso646,其中沒有任何影響。

然後我想知道:爲什麼我們需要這些operator synonyms?如果有人提供一些用例,這將是很好的。

+5

可能是爲了迎合使用鍵盤的人,他們的標準佈局中沒有這些符號。 – SBI

+0

那麼,對於我來說,我可以非常明確地表示,我的意思是按位或不是邏輯或! – AndyG

回答

相關問題