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

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

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

成員函數(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ù)一般不定義在類中。他們一般和類的聲明放在一起,保存在同一個(gè)頭文件中。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相關(guān)文章

最新評論