0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

干貨:三大實例講解三種C++運算符重載

如意 ? 來源:C語言基礎 ? 作者:C語言基礎 ? 2020-09-30 16:59 ? 次閱讀

本章節(jié)主要講解是運算符重載。運算符重載是賦予運算符能操作自定義類型的功能。C++運算符重載主要分為以下三類:

類成員函數(shù)重載

友元函數(shù)重載

流運算符重載

類重載

重載的運算符是帶有特殊名稱的函數(shù),函數(shù)名是由關鍵字 operator 和其后要重載的運算符符號構成的。與其他函數(shù)一樣,重載運算符有一個返回類型和一個參數(shù)列表。如下實現(xiàn)對象與對象的加法的測試代碼:

干貨:三大實例講解三種C++運算符重載

對于上述重載: firstScore+secondScore 一般解析為 firstScore.operator +(secondScore) 的方式。operator+是函數(shù)名,對象調用成員函數(shù)的方式解析對象與對象的加法。所以類重載函數(shù)的參數(shù)個數(shù)是比運算符實際的操作數(shù)少1。

友元重載

友元重載,就是重載函數(shù)是友元函數(shù),如下判斷兩個美女得分誰高的測試代碼:

干貨:三大實例講解三種C++運算符重載

上述代碼中,我們真正要比較的其實只是兩個美女的各自得分,對于Liu》Di 重載函數(shù)的解析過程為 operator》(Liu,DI);operator》是函數(shù)名,故友元重載的參數(shù)個數(shù)是等于運算符的操作數(shù)的。

流重載

流運算符的重載只能采用友元的方式,并且流對象當做參數(shù)的時候必須采用引用(&)的方式,所以這里小編單獨歸結為一類。具體實例代碼如下:

干貨:三大實例講解三種C++運算符重載

特殊重載

前置++或者-- 與后置++以及--的重載,類重載的時候并不遵循上述情況,通常我們會帶一個int標識參數(shù)當做后置++或者--的重載,如下代碼:

從這一點上看,其實前置之所以比后置快,一目了然,躲了一個對象的創(chuàng)建過程。

重載注意項

C++通常習慣單目運算符重載為類的成員函數(shù),雙目運算符重載友元函數(shù),要注意的是有些運算符不能重載以及有些運算符只能重載類成員函數(shù):

=,(),[],-》 只能重載為類成員函數(shù)

。,.*,::,?: 不能被重載

C++重載運算符的時候至少有一個數(shù)據(jù)是自定義類型,這個是重載的必備條件,切記。
責編AJX

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C++
    C++
    +關注

    關注

    21

    文章

    2100

    瀏覽量

    73453
  • 源代碼
    +關注

    關注

    96

    文章

    2943

    瀏覽量

    66617
  • 運算符
    +關注

    關注

    0

    文章

    170

    瀏覽量

    11046
收藏 人收藏

    評論

    相關推薦

    C語言基礎知識(4)--運算符

    C語言中,運算符包括有算術運算符、關系運算符、邏輯運算符和位運算。
    的頭像 發(fā)表于 06-15 09:38 ?3186次閱讀

    C++重載運算符重載函數(shù)詳解

    在計算機程序設計中,運算符重載(英語:operator overloading)是多態(tài)的一。這里,運算符(比如+,=或==)被當作多態(tài)函數(shù),它們的行為隨著其參數(shù)類型的不同而不同。
    發(fā)表于 09-20 17:14 ?1728次閱讀

    C語言運算符的使用方法

    詳細介紹了C語言表達式、算術運算符、賦值運算符、關系運算符、條件結構、邏輯運算符、位運算符的語法
    發(fā)表于 11-02 11:30 ?1415次閱讀
    <b class='flag-5'>C</b>語言<b class='flag-5'>運算符</b>的使用方法

    如何去使用運算符?

    運算的定義是什么?運算符是由什么組成的?如何去使用運算符
    發(fā)表于 07-15 13:13

    C++程序設計教程之運算符重載的詳細資料說明

    本文檔詳細介紹的是C++程序設計教程之運算符重載的詳細資料說明主要內容包括了:1. 什么是運算符重載,2.
    發(fā)表于 03-14 16:04 ?4次下載
    <b class='flag-5'>C++</b>程序設計教程之<b class='flag-5'>運算符</b><b class='flag-5'>重載</b>的詳細資料說明

    縮減運算符的工程實例講解

      縮減運算符是單目運算符,也有與或非運算。其與或非運算規(guī)則類似于位運算符的與或非運算規(guī)則,但其
    的頭像 發(fā)表于 11-19 07:06 ?4125次閱讀
    縮減<b class='flag-5'>運算符</b>的工程<b class='flag-5'>實例</b><b class='flag-5'>講解</b>

    移位運算符的應用實例講解

    移位運算符在程序設計中,是位操作運算符的一。移位運算符可以在二進制的基礎上對數(shù)字進行平移。按照平移的方向和填充數(shù)字的規(guī)則分為三種:(帶符號
    的頭像 發(fā)表于 11-19 07:04 ?3469次閱讀
    移位<b class='flag-5'>運算符</b>的應用<b class='flag-5'>實例</b><b class='flag-5'>講解</b>

    C運算符的優(yōu)先級和結合性詳細解決

    運算符是一告訴編譯器執(zhí)行特定的數(shù)學或邏輯操作的符號。 C語言內置了豐富的運算符,大體可分為10類:算術運算符、關系
    的頭像 發(fā)表于 02-22 17:27 ?3185次閱讀

    python運算符是什么

    a為10,變量b為20: 運算符 描述 實例 + 加 - 兩個對象相加 a + b 輸出結果 30 - 減 - 得到 負數(shù)或是一個數(shù)減
    的頭像 發(fā)表于 02-21 16:44 ?2341次閱讀

    C語言總結_語句、運算符

    當前文章復盤C語言的: 位運算運算符、基本運算符、數(shù)據(jù)類型、變量、for語句、while語句、goto語句、switch語句、運算符優(yōu)先級強
    的頭像 發(fā)表于 08-14 09:39 ?968次閱讀

    什么是運算符重載

    重載運算符是具有特殊名稱的函數(shù),是通過關鍵字** operator **后跟運算符的符號來定義的
    的頭像 發(fā)表于 01-20 15:30 ?2423次閱讀

    條件(元)運算符

    RTL建模中廣泛使用的運算符是條件運算符,也稱為運算符,該運算符用于在兩個表達式之間進行選擇——表5-2列出了用于表示條件
    的頭像 發(fā)表于 02-09 15:42 ?1297次閱讀
    條件(<b class='flag-5'>三</b>元)<b class='flag-5'>運算符</b>

    c語言運算符及例題

    C語言中邏輯運算符包含邏輯與&&、邏輯或||、邏輯非!三種。其中邏輯與&&是雙目運算符,即需要運算符兩邊都要有表達式,且兩邊表達式都為真,此
    發(fā)表于 02-16 16:14 ?0次下載

    C語言的運算符

    C語言中,我們常常會用到表達式,在使用表達式的過程中便會使用到運算符。C語言中,不同的運算符擁有不同的優(yōu)先級和結合性。在執(zhí)行運算的過程中,
    的頭像 發(fā)表于 02-21 15:12 ?1145次閱讀
    <b class='flag-5'>C</b>語言的<b class='flag-5'>運算符</b>

    c語言從右到左的運算符有哪些

    以下是一些主要的從右到左運算C語言運算符: 函數(shù)調用運算符 ( () ):當您調用一個函數(shù)時,參數(shù)列表是從右到左進行求值的。 后置遞增運算符
    的頭像 發(fā)表于 08-20 11:39 ?602次閱讀