欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C++中類的成員函數(shù)及內(nèi)聯(lián)函數(shù)使用及說明

 更新時間:2022年11月25日 08:44:13   作者:JYT618  
這篇文章主要介紹了C++中類的成員函數(shù)及內(nèi)聯(lián)函數(shù)使用及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

成員函數(shù)

即在類內(nèi)定義的方法。通過對象名.成員函數(shù)()的方式可以調(diào)用。

一般將成員函數(shù)定義在類外,因?yàn)槌蓡T函數(shù)一般比較復(fù)雜。

簡單的成員函數(shù)可以定義在類內(nèi),定義在類外的方式如下所示:

成員函數(shù)中出現(xiàn)的參數(shù)

對于成員函數(shù)中出現(xiàn)的參數(shù),首先先在成員函數(shù)內(nèi)部查找其聲明,如在成員函數(shù)內(nèi)沒找到,則在類內(nèi)尋找,類內(nèi)所有權(quán)限的成員都可以被考慮,即使聲明部分出現(xiàn)在函數(shù)的使用之后。

如果類內(nèi)也沒有找到,則再到成員函數(shù)定義之前的作用域繼續(xù)尋找。

類相關(guān)的非成員函數(shù)

這些非成員函數(shù)屬于類的接口組成部分,但其實(shí)際上不屬于類本身。

這些函數(shù)一般不定義在類中。他們一般和類的聲明放在一起,保存在同一個頭文件中。

用戶如果要使用其中任一一個函數(shù)只需要調(diào)用該頭文件即可。

自己定義的對象作為函數(shù)的形參

在類內(nèi)也可以使用自己的類定義變量。也可以讓另一個類定義的變量作為屬性。

在一個類中,類內(nèi)的屬性都是已知的。

成員函數(shù)返回值是對象的引用

如果成員函數(shù)的返回值是對象的引用的話,則其實(shí)返回的就是調(diào)用該成員函數(shù)的對象本身。

而如果返回值類型是對象的話,那么返回的就是對調(diào)用該成員函數(shù)的對象的一個拷貝。

后續(xù)對其進(jìn)行的更改只是更改該副本的值,不能改變原對象。

成員函數(shù)調(diào)用成員函數(shù)

當(dāng)成員函數(shù)調(diào)用成員函數(shù)時,this指針會在兩個函數(shù)之間隱式地傳遞。

內(nèi)聯(lián)函數(shù)

使用內(nèi)聯(lián)機(jī)制的函數(shù)稱為內(nèi)聯(lián)函數(shù)。

一般的函數(shù)在調(diào)用時,會先保存寄存器,并在返回時恢復(fù),并且需要拷貝實(shí)參,程序需要在新的位置進(jìn)行。這一過程效率較低。對于規(guī)模小、需要頻繁調(diào)用的函數(shù),例如在類內(nèi)定義的成員函數(shù),調(diào)用一個函數(shù)的時間開銷遠(yuǎn)遠(yuǎn)大于小規(guī)模函數(shù)體中全部語句的執(zhí)行時間,這種機(jī)制并不合適。

對此,C++系統(tǒng)會自動將它們作為內(nèi)置(inline)函數(shù)來處理。程序調(diào)用內(nèi)聯(lián)函數(shù)時,并不是真正地執(zhí)行函數(shù)的調(diào)用過程(如保留返回地址等處理),而是把函數(shù)代碼嵌入程序的調(diào)用點(diǎn)。這樣可以大大減少調(diào)用成員函數(shù)的時間開銷。

當(dāng)然,太復(fù)雜的函數(shù)不會作為內(nèi)聯(lián)函數(shù)。

是否作為內(nèi)聯(lián)函數(shù)由編譯器自己決定,對類內(nèi)定義的成員函數(shù),可以省略inline,因?yàn)檫@些成員函數(shù)已被隱含地指定為內(nèi)置函數(shù)。

若是在函數(shù)外定義,則可以在前面寫inline

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C++?opencv圖像處理實(shí)現(xiàn)灰度變換示例

    C++?opencv圖像處理實(shí)現(xiàn)灰度變換示例

    這篇文章主要為大家介紹了C++?opencv圖像處理灰度變換的實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • MoveWindow() SetWindowPos()的區(qū)別于聯(lián)系

    MoveWindow() SetWindowPos()的區(qū)別于聯(lián)系

    這篇文章主要介紹了VC++中MoveWindow() SetWindowPos()的區(qū)別于聯(lián)系,需要的朋友可以參考下
    2015-01-01
  • Visual?Studio?2022編譯C++20代碼

    Visual?Studio?2022編譯C++20代碼

    本文主要介紹了Visual?Studio?2022編譯C++20代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 詳解C++設(shè)計模式編程中策略模式的優(yōu)缺點(diǎn)及實(shí)現(xiàn)

    詳解C++設(shè)計模式編程中策略模式的優(yōu)缺點(diǎn)及實(shí)現(xiàn)

    這篇文章主要介紹了C++設(shè)計模式編程中策略模式的優(yōu)缺點(diǎn)及實(shí)現(xiàn),文中討論了策略模式中設(shè)計抽象接口的繼承和組合之間的區(qū)別,需要的朋友可以參考下
    2016-03-03
  • C/C++實(shí)現(xiàn)crc碼計算和校驗(yàn)

    C/C++實(shí)現(xiàn)crc碼計算和校驗(yàn)

    循環(huán)冗余校驗(yàn)(Cyclic Redundancy Check, CRC)是一種根據(jù)網(wǎng)絡(luò)數(shù)據(jù)包或計算機(jī)文件等數(shù)據(jù)產(chǎn)生簡短固定位數(shù)校驗(yàn)碼的一種信道編碼技術(shù)。本文主要介紹了C++實(shí)現(xiàn)crc碼計算和校驗(yàn)的方法,需要的可以參考一下
    2023-03-03
  • C++調(diào)用Python基礎(chǔ)功能實(shí)例詳解

    C++調(diào)用Python基礎(chǔ)功能實(shí)例詳解

    c++調(diào)用Python首先安裝Python,本文以win7為例,給大家詳細(xì)介紹C++調(diào)用Python基礎(chǔ)功能,需要的朋友參考下吧
    2017-04-04
  • 深入解析C語言中函數(shù)指針的定義與使用

    深入解析C語言中函數(shù)指針的定義與使用

    這篇文章主要介紹了C語言中函數(shù)指針的定義與使用,是C語言入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2016-04-04
  • C++使用遞歸方法求n階勒讓德多項式完整實(shí)例

    C++使用遞歸方法求n階勒讓德多項式完整實(shí)例

    這篇文章主要介紹了C++使用遞歸方法求n階勒讓德多項式,涉及C++遞歸算法與浮點(diǎn)數(shù)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-05-05
  • C++詳解PIMPL指向?qū)崿F(xiàn)的指針

    C++詳解PIMPL指向?qū)崿F(xiàn)的指針

    PIMPL 是 C++ 中的一個編程技巧,意思為指向?qū)崿F(xiàn)的指針。具體操作是把類的實(shí)現(xiàn)細(xì)節(jié)放到一個單獨(dú)的類中,并用一個指針進(jìn)行訪問
    2022-07-07
  • Opencv實(shí)現(xiàn)對象提取與測量

    Opencv實(shí)現(xiàn)對象提取與測量

    這篇文章主要為大家詳細(xì)介紹了基于Opencv實(shí)現(xiàn)對象提取與測量,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05

最新評論