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 ...