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

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

3天內(nèi)不再提示

C++之操作符重載學習的總結(jié)

電子設(shè)計 ? 來源:電子設(shè)計 ? 作者:電子設(shè)計 ? 2020-12-24 16:36 ? 次閱讀

一、操作符重載:

1、我們先來看一個問題實現(xiàn),下面的復(fù)數(shù)解決方案是否可行,復(fù)數(shù)大家應(yīng)該都不陌生(分為實部和虛部):

代碼版本一:

運行結(jié)果:

這里通過Add函數(shù)可以解決Complex對象相加的問題,但是在我們數(shù)學運算里面就是直接實部加實部,虛部加虛部,和正常的實數(shù)相加一樣,所以說,為什么不直接這樣操作呢,這就涉及到符號"+"的問題。

2、操作重載符的引出

c++中的重載能夠擴展操作符的功能

操作符的重載以函數(shù)的方式進行

本質(zhì):用特殊形式的函數(shù)擴展操作符的功能

3、操作重載符的語法:

通過operator關(guān)鍵字可以定義特殊的函數(shù)

operator的本質(zhì)是通過函數(shù)重載操作符

語法格式:

代碼版本二:

輸出結(jié)果:

4、再次改進代碼:

可以將操作符重載函數(shù)定義成為類的成員函數(shù)(前面我們學過,友元現(xiàn)代軟件開發(fā)不允許):

比全局操作符重載函數(shù)少一個參數(shù)(左操作數(shù),成員函數(shù)中隱藏的 this 參數(shù)可以充當左操作數(shù)的角色)

不需要依賴友元就可以完成操作符重載

編譯器優(yōu)先在成員函數(shù)中尋找操作符重載(一旦在成員函數(shù)中找到,就不會去全局找)

二、小結(jié):

操作符重載是c++的強大特性之一

操作符重載的本質(zhì)是通過函數(shù)擴展操作符的功能

operator 關(guān)鍵字是實現(xiàn)操作符重載的關(guān)鍵

操作符重載遵循相同的函數(shù)重載規(guī)則

全局函數(shù)和成員函數(shù)都可以實現(xiàn)對操作符的重載

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

    關(guān)注

    7

    文章

    514

    瀏覽量

    44056
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2100

    瀏覽量

    73453
收藏 人收藏

    評論

    相關(guān)推薦

    c語言中從左到右結(jié)合怎么看

    C語言中,操作符的結(jié)合性(Associativity)是指當操作符在表達式中連續(xù)出現(xiàn)時,它們?nèi)绾闻c操作數(shù)結(jié)合的順序。對于大多數(shù)二元操作符
    的頭像 發(fā)表于 08-20 11:42 ?636次閱讀

    C++中實現(xiàn)類似instanceof的方法

    C++有多態(tài)與繼承,但是很多人開始學習C++,有時候會面臨一個常見問題,就是如何向下轉(zhuǎn)型,特別是不知道具體類型的時候,這個時候就希望C++ 可以向Java或者Python中有insta
    的頭像 發(fā)表于 07-18 10:16 ?499次閱讀
    <b class='flag-5'>C++</b>中實現(xiàn)類似instanceof的方法

    FPGA學習筆記---基本語法

    3、信號類型:wire, reg, tri等 4、參數(shù)定義:parameter 5、運算操作符:各種邏輯操作符、移位操作符、算數(shù)操作符等 6、比較判斷:if ... else, ca
    發(fā)表于 06-23 14:58

    STM32CubeMX如何在*.c源文件中使用c++特性?

    用arm-xxx-gcc編譯器進行編譯,*.cpp文件會使用arm-xxx-g++編譯器進行編譯,STM32CubeMX生成文件都是*.c源文件,在不修改文件名后綴情況下,我現(xiàn)在是想在*.c源文件中使用c++特性(比如
    發(fā)表于 04-25 06:15

    c語言,c++,java,python區(qū)別

    操作系統(tǒng)、嵌入式系統(tǒng)等對性能要求較高的場景。C語言的語法相對簡單,學習曲線較平緩,也是學習其他高級語言的入門語言。 C++
    的頭像 發(fā)表于 02-05 14:11 ?2117次閱讀

    vb語言和c++語言的區(qū)別

    Microsoft開發(fā)的一種面向?qū)ο蟮氖录?qū)動編程語言。它的設(shè)計目標是簡化編程過程,讓初學者也能快速上手。與相比,C++語言是一種通用的、面向?qū)ο蟮木幊陶Z言,其設(shè)計目標是提供高性能的系統(tǒng)級編程。 語法: VB語言的語法較為簡單,使用了很多可讀性強的關(guān)鍵詞,如“
    的頭像 發(fā)表于 02-01 10:20 ?1948次閱讀

    C++簡史:C++是如何開始的

    MISRA C++:2023,MISRA? C++ 標準的下一個版本,來了!為了幫助您做好準備,我們介紹了 Perforce 首席技術(shù)支持工程師 Frank van den Beuken 博士撰寫
    的頭像 發(fā)表于 01-11 09:00 ?513次閱讀
    <b class='flag-5'>C++</b>簡史:<b class='flag-5'>C++</b>是如何開始的

    “+”操作符的使用技巧

    這篇寫個平時易被忽略的小知識點,一元 + 操作符的使用技巧。
    的頭像 發(fā)表于 12-28 13:27 ?492次閱讀

    mybatis的dao能重載

    MyBatis的DAO能否重載? 在MyBatis中,DAO是數(shù)據(jù)訪問對象的縮寫,用于執(zhí)行與數(shù)據(jù)庫交互的操作。MyBatis的DAO可以重載,即可以定義多個具有不同參數(shù)的相同方法名的方法,以滿足
    的頭像 發(fā)表于 12-03 11:51 ?1223次閱讀

    如何選擇創(chuàng)建c語言和c++

    選擇創(chuàng)建 C 語言和 C++ 都需要綜合考慮多個因素。在決定使用哪種語言之前,我們需要對這兩種語言的特點、優(yōu)缺點、適用場景、學習成本等進行全面的了解和對比。下面是關(guān)于選擇創(chuàng)建 C 語言
    的頭像 發(fā)表于 11-27 15:58 ?558次閱讀

    sql的where條件多個and順序

    在SQL中,WHERE子句用于過濾查詢結(jié)果以提供符合特定條件的記錄。當有多個AND操作符時,WHERE子句的順序并不會影響查詢結(jié)果,但是正確的AND操作符順序可以提高查詢的可讀性和性能。 首先,我們
    的頭像 發(fā)表于 11-23 11:33 ?3716次閱讀

    sql怎么在where條件判斷

    在SQL中,WHERE條件用于篩選符合特定條件的記錄。它提供了一種在查詢中過濾數(shù)據(jù)的方法,使您能夠根據(jù)所需的特定條件對查詢結(jié)果進行更精確的控制。 在WHERE子句中,您可以使用各種操作符和函數(shù)來構(gòu)建
    的頭像 發(fā)表于 11-23 11:30 ?1818次閱讀

    sql語句where條件查詢

    的細節(jié),包括使用的操作符、條件的組合、多張表的查詢、條件的性能優(yōu)化等方面。 首先,讓我們了解一下WHERE子句中常用的操作符。在SQL中,常用的操作符包括: 比較操作符: 等于(=):
    的頭像 發(fā)表于 11-23 11:28 ?1101次閱讀

    C/C++語言學習大全套

    電子發(fā)燒友網(wǎng)站提供《C/C++語言學習大全套.rar》資料免費下載
    發(fā)表于 11-18 14:33 ?4次下載
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>語言<b class='flag-5'>學習</b>大全套

    new和malloc的區(qū)別

    1. 申請的內(nèi)存所在位置 new操作符從自由存儲區(qū)(free store)上為對象動態(tài)分配內(nèi)存空間,而malloc函數(shù)從堆上動態(tài)分配內(nèi)存。自由存儲區(qū)是C++基于new操作符的一個抽象概念,凡是通過
    的頭像 發(fā)表于 11-11 11:29 ?537次閱讀
    new和malloc的區(qū)別