運算子的過載

2021-10-10 17:36:15 字數 562 閱讀 8069

運算子實際上是乙個函式,所以運算子的過載實際上是函式的過載。

過載運算子的宣告形式如下:

operator 型別名(

);

operator是需要過載的運算子,整個語句沒有返回值型別,因為型別名就代表了它的返回值型別。

過載運算子將物件轉換成型別名規定的型別,轉換時的形式就像強制轉換一樣。

過載運算子不能是新建立的運算子;

1. 算數運算子:+,-,,/,%,++,–

2. 位操作運算子:&,|,~,^,>>,<<

3. 邏輯運算子:!,&&,||

4. 比較運算子:<,>,>=,<=,==,!=

5. 賦值運算子:=,+=,-=,=,/=,%=,&=,|=,^=,<<=,>>=

6. 其他運算子:,(),->, , , new , delete,new,delete,->*

過載運算子時不能改變運算子運算元個數。、

不能改變運算子原有優先順序。

不能改變運算子原有結合性。

不能改變運算子原有的語法結構。

過載運算子含義必須清楚。

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

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

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

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

運算子過載限制 不能過載的運算子

1.過載後的運算子必須至少有乙個操作符是使用者定義的型別。2.使用運算子不能違反運算子原來的句法規則。3.不能新建運算子 4.不能過載 sizeof const cast,dynamic cast,reinterpret cast,static cast 5.只能通過成員函式過載的運算子 限制說明 ...