簡體   English   中英

后綴運算符不應該被視為二進制運算符

[英]Shouldn't the Postfix Operators be Considered Binary Operators

后綴運算符采用int參數。 關於為什么問題已經存在,似乎答案是:“ 因為Bjarne Stroustrup這樣說

我對這個答案感到不舒服。 如果Bjarne Stroustrup需要一些技巧來提示編譯器表現不同,那么為什么他不能僅僅取消操作符是否返回引用? 這讓我質疑:

  1. 我為什么不能做: foo++ 13;
  2. 為什么int參數沒有默認設置為1
  3. 為什么將其視為一元運算符,它需要一個參數

如果Bjarne Stroustrup需要一些技巧來提示編譯器表現不同,那么為什么他不能僅僅取消操作符是否返回引用?

因為您不能基於函數的返回類型重載該函數。 函數可以重載的是參數,const限定符和參考限定符

我為什么不能做: foo++ 13;

因為(int)參數僅用於過載解析。 您不接受它或使用該參數。

為什么int參數沒有默認設置為1

再次不使用它。 只是告訴編譯器是前綴還是后綴版本。

為什么將其視為一元運算符,它需要一個參數

它實際上不需要爭論。 僅存在參數以使它們不同。 它僅影響和作用於一個操作數,因此它是一元運算符。

要回答標題中的問題:在foo++++顯然是一元運算符。 如果您恰好斜視它的實現,它的實現可能看起來像一個二進制運算符,這一事實並不會改變它的使用方式 ,這就是使它變得一元的原因。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM