c 操作符過載

2021-07-23 21:05:17 字數 1436 閱讀 7898

一、【定義】:

1、過載操作符是具有特殊函式名的函式,關鍵字operator後面接需要定義的操作符符號。

2、操作符過載也是乙個函式,具有返回值和形參表。它的形引數目與操作符的運算元目相同,

3、函式呼叫操作符可以接受任意數目的運算元。

4、使用運算子過載可以提高**的可讀性。

二、形式:

返回型別

operate

操作符(引數列表);

三、四、【注意】:

注意:1、不能通過連線其他符號來建立新的操作符:比如operator@;

void operator @(){}

2、過載操作符必須有乙個類型別或者列舉型別的運算元

int operator +(const int

_inum1 , const int

_inum2 )

// 報錯

typedef enum

test;

int operator+(const int

_inum1 , const

test

_test )

3、用於內建型別的操作符,其含義不能改變,例如:內建的整型+,不能改變其含義

5、不再具備短求職特性

過載操作符不能保證操作符的求值順序,在過載&&和||中,對每個運算元

都要進行求值,而且對運算元的求職順序不能做規定,因此:過載&&、

||和逗號操作符不是好的做法。

6、作為類成員的過載函式,其形參看起來比運算元數目少

1成員函式的操作符有乙個預設的形參this,限定為第乙個形參。

ctest

operator+(const

ctest

test1,const

ctest

test2)const

// 報錯

ctest

operator+(const

ctest

test1)const

7、一般將算術操作符定義為非成員函式,將賦值運算子定義成員函式

8、操作符定義為非類的成員函式時,一般將其定義為類的友元

9、==和!=

操作符一般要成對過載

10、下標操作符

:乙個非

const

成員並返回引用,乙個是

const

成員並返回引用

11、解引用操作符*和

->

操作符,不顯示任何引數

13、自增自減操作符

前置式++/--

必須返回被增量或者減量的引用

字尾式操作符必須返回舊值,並且應該是值返回而不是引用返回

14、輸入操作符

>>

和輸出操作符

<<

必須定義為類的友元函式

五、【建議】:

使用過載操作符,可以令程式更自然、更直觀

C 操作符過載

1.作為成員過載 class myclass public myclass operator const myclass d cons friend myclass operator const myclass a1,const myclass a2 關於返回值型別的討論 呼叫者堆疊裡返回乙個物件效...

C 過載操作符

過載操作符 一 過載操作符的定義 1.過載操作符的結構 返回型別 operator 需要過載的操作符 形參列表 注意 形引數目應和運算元數目相同。2.過載操作符的幾條注意事項 1 過載的操作符名不能通過連線其他合法符號來建立任何新的操作符。如 2 過載操作符必須具備至少乙個類型別或列舉型別的運算元。...

c 操作符過載

過載操作符 一 限制 1 不能增加新的操作符 2 有些操作符不能過載,如.物件中的訪問成員 作用域解析操作符 sizeof 三元操作符 3 不能改變操作符的元數,元數是指與操作符相關的引數或運算元個數。比如一元操作符 只能應用於乙個操作符 4 不能改變操作符的優先順序 5 不能重新定義內建型別的操作...