c 運算子過載 資料型別轉換

2021-09-30 14:42:03 字數 981 閱讀 2716

1.運算子就是「+」、「>>」等符號,對運算子過載實質就是對函式的過載,這樣運算子就能在原有基礎上增加新功能,不能自己定義新運算子,只能對已有運算子過載,過載運算子後不能改變運算子本身的特性,比如優先順序,運算數個數等;

2.運算子過載格式:

函式型別 operator 運算子名稱(形參表)

e.g.

complex operator +(complex &c1,complex &c2)

operator是關鍵字,函式名由operator和運算子共同組成,如」operator +」。

3.不能過載的5個運算子:「.」、「*」、「::」、「sizeof」、「?:」。

4.對運算子過載的函式有兩種方式:類成員函式、類友元函式。

類成員函式:complex operator +(complex &c1)

這樣就可以直接c1+c2了,相當於是c1.operator+(c2),operator+就是c1的成員函式,因為可以通過this指標訪問類的資料成員,所以可以少寫乙個函式引數,第乙個引數必須為本類物件。

類友元函式:complex operator +(complex &c1,complex &c2)

這樣c1+c2相當於是operator+(c1,c2)

如果不用友元,則過載的運算子函式無權訪問類的私有成員,所以要用友元。

因為友元會破壞類的封裝,所以盡量將運算子函式作為類的成員。一般來說,雙目運算子為友元,單目和復合運算子為成員函式。

5.資料型別顯式轉換:

c風格:(int)12.3=12

c++風格:int(12.3)=12

6.建構函式轉換資料型別,過載建構函式即可。

7.型別轉換函式:

格式:operator 返回型別()//一般是在類內部寫的,

e.g.

class a

operator int()

};int main()

作用:將自定義資料型別轉換為標準資料型別。

C 型別轉換運算子過載

在c 中有乙個特殊的運算子過載方法 型別轉換運算子過載,形如 operator type code class cdemo operator int private int x int y code int tmain int argc,tchar argv 執行結果 即 x的值,int 對demo...

c 過載型別轉換運算子

型別轉換運算子 型別轉換運算子是類的一種特殊成員函式,負責將乙個類型別的值轉換成其他型別 乙個型別轉換函式必須是類的成員函式,不能有返回型別,形參列表也必須為空,通常是const的。operator type const class smallint 轉換源,為int型。可將算術型別轉換成small...

型別轉換 運算子過載

c 中沒有返回型別的函式有3個,建構函式 析構函式 型別轉換函式。operator const char const 如果是過載 的話,那應該寫成 const char operator const而上面所寫的那樣,而且即使是這樣寫那也不正確的,因為運算子過載中有幾個運算子的返回值是有格式的 約定 ...