日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

C++中類的成員函數及內聯函數使用及說明_C 語言

作者:JYT618 ? 更新時間: 2022-12-23 編程語言

成員函數

即在類內定義的方法。通過對象名.成員函數()的方式可以調用。

一般將成員函數定義在類外,因為成員函數一般比較復雜。

簡單的成員函數可以定義在類內,定義在類外的方式如下所示:

成員函數中出現的參數

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

如果類內也沒有找到,則再到成員函數定義之前的作用域繼續尋找。

類相關的非成員函數

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

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

用戶如果要使用其中任一一個函數只需要調用該頭文件即可。

自己定義的對象作為函數的形參

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

在一個類中,類內的屬性都是已知的。

成員函數返回值是對象的引用

如果成員函數的返回值是對象的引用的話,則其實返回的就是調用該成員函數的對象本身。

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

后續對其進行的更改只是更改該副本的值,不能改變原對象。

成員函數調用成員函數

當成員函數調用成員函數時,this指針會在兩個函數之間隱式地傳遞。

內聯函數

使用內聯機制的函數稱為內聯函數。

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

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

當然,太復雜的函數不會作為內聯函數。

是否作為內聯函數由編譯器自己決定,對類內定義的成員函數,可以省略inline,因為這些成員函數已被隱含地指定為內置函數。

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

原文鏈接:https://blog.csdn.net/qq_41657077/article/details/123694257

欄目分類
最近更新