多載一元運算子
一元運算子會產生單一運算元的結果。 您可以定義一組標準一元運算子的多載,以處理使用者定義型別。
可多載的一元運算子
您可以在使用者定義型別上多載下列一元運算子:
一元運算子多載宣告
您可以將多載一元運算子宣告為非靜態成員函式或非成員函式。 多載的一元成員函式不會接受引數,因為它們會隱含地在 上 this
運作。 使用一個引數宣告非member 函式。 宣告這兩個表單時,編譯器會遵循多載解析的規則,以判斷要使用哪一個函式。如果有的話。
下列規則適用于所有前置詞一元運算子。 若要將一元運算子函式宣告為非靜態成員函式,請使用下列宣告形式:
return-type
operator
op
();
在此表單中, return-type
是傳回型別,而且 op
是上表所列的其中一個運算子。
若要將一元運算子函式宣告為非成員函式,請使用下列宣告形式:
return-type
operator
op
(
class-type
);
在此表單中, return-type
是傳回型別, op
是上表所列的其中一個運算子,而 class-type
是要操作之引數的類別類型。
的後置形式 ++
,並 --
採取額外的 int
引數來區別它們與前置詞表單。 如需 和 前置詞和後置格式 ++
--
的詳細資訊,請參閱 遞增和遞減運算子多載 。
注意
一元運算子的傳回型別沒有任何限制。 例如,邏輯 NOT ( !
) 傳回 bool
值是合理的,但不會強制執行此行為。
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應