簡體   English   中英

除了++和-外,是否可能重載postfix一元運算符

[英]Is it possible to overload postfix unary operator besides the ++ and --

在c ++標准中說

前綴一元運算符應由無參數的非靜態成員函數(9.3)或具有一個參數的非成員函數實現。

但是沒有有關后綴運算符重載的信息。

關於后綴運算符(13.5.7)

用戶定義的函數operator ++實現前綴和后綴++運算符。 如果此函數是沒有參數的成員函數,或者是具有類或枚舉類型的一個參數的非成員函數,則它將為該類型的對象定義前綴增量運算符++。 如果函數是具有一個參數的成員函數(應為int類型)或具有兩個參數的非成員函數(其第二個應為int類型),則它將為對象的后綴增量運算符++定義這種類型。 當由於使用++運算符而調用后綴增量時,int參數的值為零。

operator--operator++之所以與眾不同,是因為它們以前綴和后綴形式存在,因此需要做一些區分兩者的事情。 正如您已經提到的,他們決定根據讓后綴形式收到額外的(未使用)參數來進行區分。

您可以重載其他postfix運算符(例如, operator[]operator()operator-> ),但是您不必執行任何特殊操作即可使它們重載,因為它們僅以postfix形式存在。

暫無
暫無

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

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