網站首頁 編程語言 正文
成員函數
即在類內定義的方法。通過對象名.成員函數()的方式可以調用。
一般將成員函數定義在類外,因為成員函數一般比較復雜。
簡單的成員函數可以定義在類內,定義在類外的方式如下所示:
成員函數中出現的參數
對于成員函數中出現的參數,首先先在成員函數內部查找其聲明,如在成員函數內沒找到,則在類內尋找,類內所有權限的成員都可以被考慮,即使聲明部分出現在函數的使用之后。
如果類內也沒有找到,則再到成員函數定義之前的作用域繼續尋找。
類相關的非成員函數
這些非成員函數屬于類的接口組成部分,但其實際上不屬于類本身。
這些函數一般不定義在類中。他們一般和類的聲明放在一起,保存在同一個頭文件中。
用戶如果要使用其中任一一個函數只需要調用該頭文件即可。
自己定義的對象作為函數的形參
在類內也可以使用自己的類定義變量。也可以讓另一個類定義的變量作為屬性。
在一個類中,類內的屬性都是已知的。
成員函數返回值是對象的引用
如果成員函數的返回值是對象的引用的話,則其實返回的就是調用該成員函數的對象本身。
而如果返回值類型是對象的話,那么返回的就是對調用該成員函數的對象的一個拷貝。
后續對其進行的更改只是更改該副本的值,不能改變原對象。
成員函數調用成員函數
當成員函數調用成員函數時,this指針會在兩個函數之間隱式地傳遞。
內聯函數
使用內聯機制的函數稱為內聯函數。
一般的函數在調用時,會先保存寄存器,并在返回時恢復,并且需要拷貝實參,程序需要在新的位置進行。這一過程效率較低。對于規模小、需要頻繁調用的函數,例如在類內定義的成員函數,調用一個函數的時間開銷遠遠大于小規模函數體中全部語句的執行時間,這種機制并不合適。
對此,C++系統會自動將它們作為內置(inline)函數來處理。程序調用內聯函數時,并不是真正地執行函數的調用過程(如保留返回地址等處理),而是把函數代碼嵌入程序的調用點。這樣可以大大減少調用成員函數的時間開銷。
當然,太復雜的函數不會作為內聯函數。
是否作為內聯函數由編譯器自己決定,對類內定義的成員函數,可以省略inline,因為這些成員函數已被隱含地指定為內置函數。
若是在函數外定義,則可以在前面寫inline
原文鏈接:https://blog.csdn.net/qq_41657077/article/details/123694257
相關推薦
- 2022-07-12 CSS樣式:樣式的沖突 樣式的繼承 偽元素 偽類
- 2021-12-18 ECommerceCrawlers項目分析(十二)
- 2023-07-02 Oracle中分析函數over()的用法及說明_oracle
- 2022-06-06 解決:Access denied for user ‘root‘@‘localhost‘ (usin
- 2022-06-28 python神經網絡學習使用Keras進行回歸運算_python
- 2023-08-16 el-input輸入框去除邊框,且實現自動換行功能
- 2022-07-09 Nginx利用Logrotate實現日志分割的詳細過程_nginx
- 2023-09-18 Echarts常見問題總結(持續更新)
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支