運算子實際上是乙個函式,所以運算子的過載實際上是函式的過載。
過載運算子的宣告形式如下:
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.只能通過成員函式過載的運算子 限制說明 ...