C 中,可過載的運算子

2022-05-14 22:05:37 字數 822 閱讀 4695

c#中,運算子過載必須宣告為public和static的,過載 == 和 != 時,最好也應過載equals()和gethashcode()方法,因為 == 和equals()方法應保持一樣的邏輯(不過載後兩方法,會產生乙個compiler warning)類別

運算子 限制

算術二元運算子

+, *, /,

–, %

算術一元運算子

+, –

, ++,

––

按位二元運算子

&, |, ^, <<, >>

按位一元運算子

!, ~, true, false

true

和false

運算子必須成對過載

比較運算子

==, !=, >=, <, <=, >

必須成對過載

賦值運算子

+=,–

=,*=,/=,>>=,<<=,%=

,&=,|=,^=

不能顯式過載這些運算子,在重寫單個運算子如+,–

,%等時,它們會被隱式重寫

索引運算子

不能直接過載索引運算子。第

2章介紹的索引器成員型別允許在類和結構上支援索引運算子

資料型別轉換運算子

()

不能直接過載資料型別轉換運算子。使用者定義的資料型別轉換

(在本章的第

2部分介紹

)允許定義定製的資料型別轉換

C 中運算子過載

運算子過載使得使用者自定義的資料以一種更簡潔的方式工作。比如int x,y 可以為y x y 而 my c1,c2 如果想使得兩個自定義的物件相加,以前只能調 用函式計算它們的和。而現在只要定義了運算子過載就能實現c1 c1 c2.所謂過載,就是重新賦予新的含義。函式過載就是對乙個已有的函式賦予新的...

C 中運算子過載

運算子過載可以寫在類的內部,也可以寫成全域性函式形式,其中運算子 在過載時必須宣告為類的成員函式 而運算子 sizeof 不能被過載 演算法運算子的過載不會改變運算子原有的優先順序。例子 include include include using namespace std class comple...

C 中的運算子過載(一) 運算子過載的概念

概述 運算子過載,就是對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。運算子過載 operator overloading 只是一種 語法上的方便 也就是它只是另一種函式呼叫的方式,只是為了方便我們使用,運算子只能運算內建的資料型別,對於自定義的資料型別不能運算,所以我們可以過載...