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

C++this指針詳情

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

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

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

這段代碼當(dāng)中有一些問題,我們一個(gè)一個(gè)來說。

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

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

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

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

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

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

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

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

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

相關(guān)文章

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

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

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

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

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

    sigsetjmp的用法總結(jié)

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

    C++ pair的用法案例詳解

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

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

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

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

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

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

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

    C語言之陷阱與缺陷詳解

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

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

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

    詳解C++中的const和constexpr

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

最新評(píng)論