日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

c++运算符重载中很多人易忘的小细节

發布時間:2025/3/19 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c++运算符重载中很多人易忘的小细节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


運算符重載的基本格式
運算符重載的本質就是函數重載
類型說明符 operator 運算符 (參數列表)
{
函數體;//實現運算符功能的代碼。
}

如果把 operator運算符”看作一個整體,把它看成函數名,上述定義不就是函數的定義嗎?
其中, operator是關鍵字,函數的名字就是用 operator和其后的運算符共同組成的標識符共同組成的標識符。

運算符重載的基本規則

運算符重載時要遵循一定的規則,具體規則如下。
(1)只能重載C語言中已有的運算符,不能虛構新的運算符。
(2)運算符重載后不改變運算符的優先級順序。例如,算術運算符“”和“”的優先級 高于“+”和“”,那么,在類中重載這些運算符后,“興”和“”的優先級仍然高于“+”和 “”。只有括號能改變運算符的運算順序。
(3)運算符重載后不改變運算符的結合性。例如,賦運算符“=”是右結合的,那么運 算符“=”被重載后仍然是右結合的。
(4)運算符重載后不改變操作數的個數。例如,關系運算符“>=”是雙目運算符,那么 “>=”被重載后仍然是雙目運算符;而“+”既可以是單目運算符,也可以是雙目運算符,那 么“”既可以被重載為單目運算符,也可以被重載為雙目運算符。
(5)運算符重載后不改變運算符原有的語義。例如,雙目運算符“+”在算術運算中表示兩數相加,那么“+”重載到類中仍然表示兩個操作數的相加。如果改變了“+”的語義會 顯得莫名其妙,極大地降低程序的可讀性。
(6)運算符重載時操作對象至少應該有一個是自定義的類對象(或類對象的引用),即 不能為基本數據類型重載運算符。
(7)有五個常用運算符不允許被重載。并不是所有運算符都可以重載,以下五個運算 符不允許被重載:成員訪問運算符“”、成員指針運算符“”、域運算符“:”、條件運算符 “?:”和 sizeof運算符。另外,強制類型轉換運算符( static_cast、 const_cast、 dynamiccast和 reinterpret cast)、 alignof和 typeid也不能被重載。

總結

以上是生活随笔為你收集整理的c++运算符重载中很多人易忘的小细节的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。