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

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

3天內不再提示

C++之類中的函數(shù)重載學習的總結

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

一、類中的函數(shù)重載:

1、函數(shù)重載的溫習:

函數(shù)重載的本質為相互獨立的不同函數(shù)

C++中通過函數(shù)名和函數(shù)參數(shù)確定函數(shù)調用

無法直接通過函數(shù)名得到函數(shù)重載函數(shù)的入口地址

函數(shù)重載必然發(fā)生在同一個作用域中

2、類中的成員函數(shù)可以進行重載:

構造函數(shù)的重載

普通成員函數(shù)的重載

靜態(tài)成員函數(shù)的重載

這里有一個問題:全局函數(shù),普通成員函數(shù)以及靜態(tài)成員函數(shù)之間是否可以構成重載?

從上面回顧重載函數(shù)的知識中,我們要注意到一點函數(shù)重載必須發(fā)生在同一作用域里面(其他兩點問題不大),所以的構造函數(shù)和普通成員函數(shù)是可以構造重載的,而與全局函數(shù)是不可以構成重載的。

代碼測試:

輸出結果:

3、重載的意義:

通過函數(shù)名對函數(shù)功能進行提提示

通過參數(shù)列表對函數(shù)用法進行提示

擴展系統(tǒng)中已經(jīng)存在的函數(shù)功能

這里用c語言里面的拷貝字符串函數(shù)strcpy來進行擴展演示:

代碼版本一:

輸出結果:

這里雖然結果是輸出多了,但是這個程序同時也報了段錯誤,因為buf所能存儲的能力小于s;所以為了解決這個問題,你肯定第一時間想到strncpy函數(shù):

代碼版本二:

輸出結果:

這個函數(shù)就保護程序的安全性;但是我在c++里面既然學習了函數(shù)重載,那么久可以在原有的函數(shù)基礎上進行擴展:

代碼版本三:

輸出結果:

二、總結:

類的成員函數(shù)之間可以進行重載;

重載必須發(fā)生在同一個作用域中;

全局函數(shù)和成員函數(shù)不能構成重載關系;

重載的意義在于擴展已經(jīng)存在的功能。

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

    關注

    3

    文章

    4240

    瀏覽量

    62011
  • C++
    C++
    +關注

    關注

    21

    文章

    2085

    瀏覽量

    73320
收藏 人收藏

    評論

    相關推薦

    ModusToolbox 3.2在c代碼包含c++代碼的正確步驟是什么?

    使用 ModusToolbox 3.2 我有一個用純 C 語言編寫的 XMC4700 項目。 我正在嘗試添加一些 C++ 函數(shù),并將其合并到我的原始代碼。 我可以構建獨立的 .cpp
    發(fā)表于 07-23 08:21

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

    函數(shù),可實際上C++沒有。但是別著急,其實C++中有兩種簡單的方法可以實現(xiàn)類似Java的instanceof的功能。 在
    的頭像 發(fā)表于 07-18 10:16 ?369次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>中</b>實現(xiàn)類似instanceof的方法

    FX2 CY7C68013A如何在C++環(huán)境中使用LoadEEPROM函數(shù)?

    我使用的是 FX2 CY7C68013A 芯片。 我知道 CyUSB.NET 庫中有我需要的 LoadEEPROM 函數(shù)。 請問如何在 C++ 環(huán)境而不是 C#/CLR 環(huán)境中使用該
    發(fā)表于 05-31 06:59

    使用 MISRA C++:2023? 避免基于范圍的 for 循環(huán)中的錯誤

    在前兩篇博客,我們?向您介紹了新的 MISRA C++ 標準?和?C++ 的歷史?。在這篇博客,我們將仔細研究以 C++
    的頭像 發(fā)表于 03-28 13:53 ?572次閱讀
    使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環(huán)中的錯誤

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

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

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

    的 MISRA C++:2023 博客系列的第二部分。 在這篇博客,我們將深入探討 C++ 的歷史、編程語言多年來的發(fā)展歷程以及它的下一步發(fā)展方向。
    的頭像 發(fā)表于 01-11 09:00 ?438次閱讀
    <b class='flag-5'>C++</b>簡史:<b class='flag-5'>C++</b>是如何開始的

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

    ++11標準。根據(jù)不同的標準,它們的功能也會有所不同,但是越新的版本支持的編譯器越少,所以本文在討論的時候使用的C語言標準是C89,C++標準是C++99.我們來介紹
    的頭像 發(fā)表于 12-07 14:29 ?796次閱讀
    <b class='flag-5'>C</b>語言和<b class='flag-5'>C++</b><b class='flag-5'>中</b>那些不同的地方

    C語言printf函數(shù)學習筆記

    printf 應該是學習C語言的第一個函數(shù),我們都知道它是用于字符串格式化輸出的。但是它的用法你真正了解了嗎?
    的頭像 發(fā)表于 11-24 11:15 ?791次閱讀
    <b class='flag-5'>C</b>語言printf<b class='flag-5'>函數(shù)</b>族<b class='flag-5'>學習</b>筆記

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

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

    java重載和重寫的區(qū)別

    Java重載(Overload)和重寫(Override)是兩個重要的面向對象編程概念,盡管它們在使用和功能上有所不同,但它們都與方法和多態(tài)性相關。本文將全面介紹重載和重寫的概念、語法
    的頭像 發(fā)表于 11-17 17:13 ?589次閱讀

    什么是C++函數(shù)? 應該怎么定義? 用途是什么?

    什么是C++函數(shù)? 應該怎么定義? 主要用途是什么?
    發(fā)表于 11-08 06:58

    Python 重載與重寫的概念

    ,隨后不久我便意識到犯下了一個錯誤。 我們先來看看重載與重寫的概念: 重載重載的條件如下: 1.一個類里面 2.方法名字相同 3.參數(shù)不同 而參數(shù)不同可分為:參數(shù)類型不同,參數(shù)個數(shù)不同。而上一次推送
    的頭像 發(fā)表于 11-03 15:13 ?482次閱讀
    Python <b class='flag-5'>重載</b>與重寫的概念

    如何綁架C語言標準庫函數(shù)?

    C語言動態(tài)內存可以使用 malloc 標準庫函數(shù),而 C++ 會使用 new 關鍵字申請,裸機情況下一般沒有問題,但是在 RTOS 情況下,就需要考慮資源保護的情況,比如多個任務同時
    發(fā)表于 11-01 09:50 ?388次閱讀

    C++之父新作帶你勾勒現(xiàn)代C++地圖

    為了幫助大家解決這些痛點問題,讓大家領略現(xiàn)代C++之美,掌握其中的精髓,更好地使用C++,C++之父Bjarne Stroustrup坐不住了,他親自操刀寫就了這本《C++之旅》!
    的頭像 發(fā)表于 10-30 16:35 ?709次閱讀
    <b class='flag-5'>C++</b>之父新作帶你勾勒現(xiàn)代<b class='flag-5'>C++</b>地圖

    C++程序設計精簡版

    章 指針第 7 章 自定義數(shù)據(jù)類型 第 3 篇 基于對象的程序設計第 8 章 類和對象第 9 章 關于類和對象的進一步討論第 10 章 運算符重載 第 4 篇 面向對象的程序設計第 11 章 繼承與派生第 12 章 多態(tài)性與虛函數(shù)第 13 章 輸入輸出流第 14 章
    發(fā)表于 10-09 07:26