C 過載運算符號

2021-09-24 11:56:53 字數 898 閱讀 2777

1、什麼是運算子的過載?

運算子與類結合,產生新的含義。

2、為什麼要引入運算子過載?

作用:為了實現類的多型性(多型是指乙個函式名有多種含義)

3、怎麼實現運算子的過載?

方式:類的成員函式 或 友元函式(類外的普通函式)

規則:不能過載的運算子有 .  和 .* 和 ?: 和 ::  和 sizeof

4、友元函式和成員函式的使用場合:

一般情況下,建議一元運算子使用成員函式,二元運算子使用友元函式

1、運算子的操作需要修改類物件的狀態,則使用成員函式。如需要做左值運算元的運算子(如=,+=,++)

2、運算時,有數和物件的混合運算時,必須使用友元

3、二元運算子中,第乙個運算元為非物件時,必須使用友元函式。如輸入輸出運算子《和》

具體規則如下:

運算子建議使用

所有一元運算子

成員函式

= ( ) [ ]  ->

必須是成員函式

+= -= /= *= ^= &= != %= >>= <<= , 似乎帶等號的都在這裡了

成員函式

所有其它二元運算子, 例如: –,+,*,/

友元函式

<< >>

必須是友元函式

5. 引數和返回值

當引數不會被改變,一般按const引用來傳遞(若是使用成員函式過載,函式也為const).

對於返回數值的決定:

1) 如果返回值可能出現在=號左邊, 則只能作為左值, 返回非const引用。

2) 如果返回值只能出現在=號右邊, 則只需作為右值, 返回const型引用或者const型值。

3) 如果返回值既可能出現在=號左邊或者右邊, 則其返回值須作為左值, 返回非const引用。

具體參考:(傳播知客)

C 過載運算子

運算子過載是一種形式的c 多型。在c 中,編譯器有能力把乙個由資料 物件和操作符共同組成的表示式,解釋為對乙個全域性或成員函式的呼叫。該全域性或成員函式被稱為操作符函式,通過重定義操作符函式,可以實現針對自定義型別 結構,類 的運算法則,並使之與內建型別一樣參與各種表示式。過載運算子可使 看起來更加...

C 過載運算子

本文主要講述加號運算子 自增運算子 流提取運算子運 流插入運算子 先給出vector類 class vector 建構函式 vector const vector v 拷貝建構函式 vector operator const vector v 過載 vector operator 過載前置自增運算子...

C 過載運算子

過載的運算子是帶有特殊名稱的函式,函式名是由關鍵字 operator 和其後要過載的運算子符號構成的。與其他函式一樣,過載運算子有乙個返回型別和乙個引數列表。如果我們定義的函式為類的成員函式 box operator const box 如果我們定義的函式為非成員函式,那麼我們需要為每次操作傳遞兩個...