操作符的過載

2022-08-24 16:18:11 字數 785 閱讀 7074

操作符的過載可以擴充套件操作符的功能,操作符的過載以特殊形式的函式的方式進行

定義:通過operator操作符可以定義特殊的函式。(本質是通過函式過載操作符)

type operator sign(const type p1,const type p2)  //sign是操作符(+,-,*,/)

例(擴充套件+符號的功能):

#include class

complex

intgeta()

intgetb()

friend complex

operator + (const complex& p1, const complex& p2); //

定義類的友元函式

};complex

operator + (const complex& p1, const complex& p2) //

操作符 + 過載的定義。已經用函式擴充套件了操作符的功能

intmain()

全域性函式和類的成員函式都可以進行操作符的過載。

也可以將運算元過載函式定義為成員函式。

例:複數操作符的過載函式

#ifndef _complex_h_

#define _complex_h_

class

complex

;#endif

操作符過載的注意事項:

1. 賦值操作符只能過載為成員函式。

2. 過載函式不應改變操作符的語義。

操作符過載

ifndef vertex h define vertex h class vertex vertex float px float py float pz vertex operator const vertex p vertex operator const vertex p void oper...

操作符過載

1.操作符是靜態方法,返回值表示操作結果,引數是運算元。2.操作符過載需要在過載的操作符前加上operator關鍵字。3.最好少用操作符過載,只有在意義明晰而且與內建類的操作一致時才適合使用,以免造成混亂。以建立的分數類 fraction 中的 為例,該分數類中有兩個int型的私有屬性 分子 num...

過載操作符

1.過載操作符1.1 限制過載操作符具有以下限制 1 只有c 預定義的操作符集中的操作符才可以被過載 2 對於內建型別的操作符,它的預定義不能被改變,應不能為內建型別過載操作符,如,不能改變int型的操作符 的含義 3 也不能為內建的資料型別定義其它的操作符 4 只能過載類型別或列舉型別的操作符 5...