c 中操作符的過載簡單理解

2021-07-23 14:52:54 字數 804 閱讀 3854

操作符的過載:

說到過載,大家都會想到c++中的函式過載,但是操作符的過載和函式的過載是不太一樣的。當我們需要對類進行操作時,如果慢慢的取出類中的私有成員進行處理,顯得會比較麻煩。所以,在這裡就介紹了操作符的過載。

過載操作符是具有特殊函式名的函式,在這裡介紹

操作符過載

關鍵字operator,在關鍵字後面接需要定義的操作符符號,其中引數是操作符的右運算元,在這裡,你需要注意:形參比實參少乙個,而且引數必須有乙個類型別或是列舉型別的引數。

另外,儘管大部分的操作符是可以過載的,但是(.    .*::

?:)這四個操作符是不可以過載的,你需要格外注意,不要鬧出乙個笑話哦。

在這裡,我介紹一下賦值運算子的過載:

date& date::operator=(const date &date)

return *this;

}

我就以乙個日期類為例,在沒有過載=之前,你想要直接建立兩個日期類的物件並進行賦值是不可能的,但是在過載後就可以了。

過載賦值運算子,首先你看引數是給的乙個對類的引用,這樣可以提高訪問的效率,當然,由於引用可以直接修改其中的值,所以你需要加上const進行修飾,讓其避免被修改值的問題;另外,裡面同樣隱含著預設的this指標。

你可以看到這個過載返回的是對類的引用,這樣返回到底有什麼用處呢。其實,在這裡你不是用飲用方式返回也是可以的,但是引用方式返回可以避免臨時物件的建立,這樣也可以提高訪問效率。

可能有人會對這個函式裡面的if判斷語句的作用不是很明白,其實這就是為了避免自己給自己賦值的情況。

c 中 操作符過載

操作符過載 1.有先後順序,如 t3 t1 t2 則t1 t2等價於t1.operate t2 2.對 操作符進行過載時,如aa是有本質區別的。操作符過載就是用函式的方法對乙個操作符進行重新定義,在該函式中定義了操作符所要完成的功能。其中cout是輸出流ostream中的物件 元素 3.a cout...

C 中 操作符過載

在實際程式中遇到一操作符問題,記錄下來方便以後查詢。在寫hashtable資料結構中,遇到操作符過載問題,具體需求如下 1.a x b 如果a x 為空,則新增記錄 2.b a x 如果a x 為空,則提示出錯 對操作符過載之後發現根本不能解決問題,查詢一些資料後發現該問題為過載後的讀寫問題,乙個過...

c 中過載《操作符

在類定義中,有時候我們需要直接利用cout來列印出類中的資料,此刻就需要過載 操作符來實現 假定定義了乙個類time 然後宣告了乙個類 time a cout 這樣的語法肯定是會報錯的,此刻就需要過載operator 要怎麼做呢?首先,在過載函式中,要訪問到類time中的私有成員的資料,所以我們需要...