多載一元運算子

一元運算子會產生單一運算元的結果。 您可以定義一組標準一元運算子的多載,以處理使用者定義型別。

可多載的一元運算子

您可以在使用者定義型別上多載下列一元運算子:

一元運算子多載宣告

您可以將多載一元運算子宣告為非靜態成員函式或非成員函式。 多載的一元成員函式不會接受引數,因為它們會隱含地在 上 this 運作。 使用一個引數宣告非member 函式。 宣告這兩個表單時,編譯器會遵循多載解析的規則,以判斷要使用哪一個函式。如果有的話。

下列規則適用于所有前置詞一元運算子。 若要將一元運算子函式宣告為非靜態成員函式,請使用下列宣告形式:

return-type operator op ();

在此表單中, return-type 是傳回型別,而且 op 是上表所列的其中一個運算子。

若要將一元運算子函式宣告為非成員函式,請使用下列宣告形式:

return-type operator op ( class-type );

在此表單中, return-type 是傳回型別, op 是上表所列的其中一個運算子,而 class-type 是要操作之引數的類別類型。

的後置形式 ++ ,並 -- 採取額外的 int 引數來區別它們與前置詞表單。 如需 和 前置詞和後置格式 ++-- 的詳細資訊,請參閱 遞增和遞減運算子多載

注意

一元運算子的傳回型別沒有任何限制。 例如,邏輯 NOT ( ! ) 傳回 bool 值是合理的,但不會強制執行此行為。

另請參閱

運算子多載