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

C++this指針詳情

 更新時間:2022年01月03日 11:03:33   作者:梁唐  
這篇文章主要介紹了C++this指針詳情,在 C++ 中,每一個對象都能通過 this 指針來訪問自己的地址。this 指針是所有成員函數(shù)的隱含參數(shù)。因此,在成員函數(shù)內(nèi)部,它可以用來指向調(diào)用對象,下面我們來了解更多詳細內(nèi)容吧

還是Stock股票這個類,假設我們要實現(xiàn)一個方法,比較一下當前股票和傳入的股票, 返回價格高的那個股票。在我們實現(xiàn)的時候,會遇到一點問題。

const Stock & Stock::topVal(const Stock &s) const {
? ? if (s.total_val > total_val) {
? ? ? ? return s;
? ? }else {
? ? ? ? return ????;
? ? }
}

這段代碼當中有一些問題,我們一個一個來說。

首先說函數(shù)簽名,前面都沒有問題,問題出現(xiàn)在簽名末尾的const。這是我們第一次在函數(shù)的末尾看到const,這個用法只能用在類或結(jié)構(gòu)體的成員函數(shù)中,而不能用在普通函數(shù)里。

它表示這個函數(shù)不會修改任何成員變量的值,末尾加上const的函數(shù)稱為常量成員函數(shù)。

常量函數(shù)有一些特殊的性質(zhì):

能被任何函數(shù)調(diào)用,只能調(diào)用常量函數(shù)
能被任何對象調(diào)用,但const對象只能調(diào)用const函數(shù)
性質(zhì)不是非常復雜,但有些像是繞口令,需要從const常量的性質(zhì)角度出發(fā)理解一下。

代碼當中第二個問題就是一堆問號的地方,這里我們想要return當前對象,但是我們不知道如何表示。為了解決這個問題,C++當中創(chuàng)建了一個特殊的指針叫做this,它用來指向調(diào)用成員函數(shù)的對象,也就是當前對象。

所以有了this之后,這段代碼可以寫成:

const Stock & Stock::topVal(const Stock &s) const {
? ? if (s.total_val > total_val) {
? ? ? ? return s;
? ? }else {
? ? ? ? return *this
? ? }
}

另外,this指針也可以拿來訪問當前對象當中的成員變量,比如我們想要訪問當前的total_val,可以寫成this->total_val,我們直接用total_val本質(zhì)上是一樣的,是編譯器替我們做了優(yōu)化。

到此這篇關于C++this指針詳情的文章就介紹到這了,更多相關C++this指針內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • visual studio 2019編譯c++17的方法

    visual studio 2019編譯c++17的方法

    這篇文章主要介紹了visual studio 2019編譯c++17的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-03-03
  • C語言?struct結(jié)構(gòu)體超詳細講解

    C語言?struct結(jié)構(gòu)體超詳細講解

    C語言中,結(jié)構(gòu)體類型屬于一種構(gòu)造類型(其他的構(gòu)造類型還有:數(shù)組類型,聯(lián)合類型),下面這篇文章主要給大家介紹了關于C語言結(jié)構(gòu)體(struct)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-04-04
  • sigsetjmp的用法總結(jié)

    sigsetjmp的用法總結(jié)

    sigsetjmp()會保存目前堆棧環(huán)境,然后將目前的地址作一個記號,而在程序其他地方調(diào)用siglongjmp()時便會直接跳到這個記號位置,然后還原堆棧,繼續(xù)程序的執(zhí)行
    2013-09-09
  • C++ pair的用法案例詳解

    C++ pair的用法案例詳解

    這篇文章主要介紹了C++ pair的用法案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • break的使用for循環(huán)嵌套示例

    break的使用for循環(huán)嵌套示例

    這篇文章主要介紹了break的使用for循環(huán)嵌套示例,需要的朋友可以參考下
    2014-02-02
  • C++中智能指針unique_ptr的實現(xiàn)詳解

    C++中智能指針unique_ptr的實現(xiàn)詳解

    智能指針本質(zhì)上并不神秘,其實就是?RAII?資源管理功能的自然展現(xiàn)而已,這篇文章主要為大家詳細介紹了如何實現(xiàn)?C++中智能指針的?unique_ptr,需要的可以了解下
    2024-01-01
  • C語言獲取Shell返回結(jié)果的實現(xiàn)方法

    C語言獲取Shell返回結(jié)果的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狢語言獲取Shell返回結(jié)果的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-07
  • C語言之陷阱與缺陷詳解

    C語言之陷阱與缺陷詳解

    本片文章是對C++中陷阱與缺陷進行了詳細的分析介紹,小編覺得本片文章講解的非常詳細,需要的朋友參考下,希望能夠給你帶來幫助
    2021-09-09
  • 重構(gòu)-C++實現(xiàn)矩陣的簡單實例

    重構(gòu)-C++實現(xiàn)矩陣的簡單實例

    下面小編就為大家?guī)硪黄貥?gòu)-C++實現(xiàn)矩陣的簡單實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-06-06
  • 詳解C++中的const和constexpr

    詳解C++中的const和constexpr

    這篇文章主要為大家介紹了C++中的const和constexpr ,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12

最新評論