精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

C++之操作符重載學習的總結

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

一、操作符重載:

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

代碼版本一:

運行結果:

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

2、操作重載符的引出

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

操作符的重載以函數的方式進行

本質:用特殊形式的函數擴展操作符的功能

3、操作重載符的語法:

通過operator關鍵字可以定義特殊的函數

operator的本質是通過函數重載操作符

語法格式:

代碼版本二:

輸出結果:

4、再次改進代碼:

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

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

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

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

二、小結:

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

操作符重載的本質是通過函數擴展操作符的功能

operator 關鍵字是實現操作符重載的關鍵

操作符重載遵循相同的函數重載規則

全局函數和成員函數都可以實現對操作符的重載

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

    關注

    7

    文章

    514

    瀏覽量

    44074
  • C++
    C++
    +關注

    關注

    22

    文章

    2104

    瀏覽量

    73504
收藏 人收藏

    評論

    相關推薦

    技術干貨驛站 ▏解鎖C語言高效編程秘訣:深入解析運算與優先級

    C語言的學習過程中,運算的使用是不可忽視的重要環節。本文將繼續深入探討C語言中的運算,重點介紹位運算
    的頭像 發表于 10-13 08:09 ?200次閱讀
    技術干貨驛站 ▏解鎖<b class='flag-5'>C</b>語言高效編程秘訣:深入解析運算<b class='flag-5'>符</b>與優先級

    鴻蒙原生應用元服務開發-倉頡基礎數據類型整數類型

    (十進制)。 整數類型支持的操作 整數類型默認支持的操作符包括:算術操作符、位操作符、關系操作符、自增和自減
    發表于 09-13 14:55

    鴻蒙原生應用元服務開發-倉頡基礎數據類型布爾類型

    let b: Bool = false 布爾類型支持的操作 布爾類型支持的操作符包括:邏輯操作符(邏輯非!,邏輯與 &&,邏輯或 ||)、部分關系操作符
    發表于 09-09 09:57

    c語言中從左到右結合怎么看

    C語言中,操作符的結合性(Associativity)是指當操作符在表達式中連續出現時,它們如何與操作數結合的順序。對于大多數二元操作符
    的頭像 發表于 08-20 11:42 ?727次閱讀

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

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

    C++中實現類似instanceof的方法

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

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

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

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

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

    c語言,c++,java,python區別

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

    vb語言和c++語言的區別

    Microsoft開發的一種面向對象的事件驅動編程語言。它的設計目標是簡化編程過程,讓初學者也能快速上手。與相比,C++語言是一種通用的、面向對象的編程語言,其設計目標是提供高性能的系統級編程。 語法: VB語言的語法較為簡單,使用了很多可讀性強的關鍵詞,如“
    的頭像 發表于 02-01 10:20 ?2084次閱讀

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

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

    “+”操作符的使用技巧

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

    C語言和C++中那些不同的地方

    C語言雖說經常和C++在一起被大家提起,但可千萬不要以為它們是一個東西。現在我們常用的C語言是C89標準,C++
    的頭像 發表于 12-07 14:29 ?918次閱讀
    <b class='flag-5'>C</b>語言和<b class='flag-5'>C++</b>中那些不同的地方

    oracle中拼接字符串函數

    , string2) 其中,string1 和 string2 是需要連接的字符串參數。 除了 CONCAT 函數,Oracle 還提供了一些其他的字符串拼接函數和操作符,這些函數和操作符可以根據具體的要求和情況來
    的頭像 發表于 12-06 09:49 ?2823次閱讀

    mybatis的dao能重載

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