類的比較運算子過載

2021-10-09 22:25:49 字數 1056 閱讀 1086

c++為了增強**的可讀性引入了運算子過載,運算子過載是具有特殊函式名的函式,也具有其返回值型別,函式名字以及引數列表,其返回值型別與引數列表與普通的函式類似。

函式名字為:關鍵字operator後面接需要過載的運算子符號。

函式原型:返回值型別 operator操作符(引數列表)

#include

using

namespace std;

class

date

>運算子過載

bool

operator

>

(const date& d)

return

false;}

==運算子過載

bool

operator==(

const date& d)

return

false;}

《運算子過載

bool

operator

<

(const date& d)

return

false;}

!=運算子過載

bool

operator!=(

const date& d)

private

:int _year;

int _month;

int _day;};

intmain()

if(d1 == d2)

if(d1 < d2)

if(d1 != d2)

return0;

}

注意:

★ 不能通過連線其他符號來建立新的操作符:比如operator@

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

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

★ 作為類成員的過載函式時,其形參看起來比運算元數目少1成員函式的操作符有乙個預設的形參this,限定為第乙個形參

★ .* 、:: 、sizeof 、?: 、. 注意以上5個運算子不能過載。

運算子過載 類的賦值運算子過載

下面介紹類的賦值運算子 1.c 中物件的記憶體分配方式 在c 中,物件的例項在編譯的時候,就需要為其分配記憶體大小,因此,系統都是在stack上為其分配記憶體的。這一點和c 完全不同!千 萬記住 在c 中,所有類都是reference type,要建立類的實體,必須通過new在heap上為其分配空間...

運算子類過載

類過載格式 函式型別 operator 運算子名稱 形參表 型引數 使用引數 1 使用 號實現複數相加 不使用類過載 include using namespace std class complex complex double r,double i complex complex add com...

運算子過載 賦值運算子的過載

有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...