最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++this指針詳情

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

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

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

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

首先說函數(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ì)不是非常復(fù)雜,但有些像是繞口令,需要從const常量的性質(zhì)角度出發(fā)理解一下。

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

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

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

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

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

相關(guān)文章

  • 淺談CMake配置OpenCV 時靜態(tài)鏈接與動態(tài)鏈接的選擇

    淺談CMake配置OpenCV 時靜態(tài)鏈接與動態(tài)鏈接的選擇

    下面小編就為大家?guī)硪黄獪\談CMake配置OpenCV 時靜態(tài)鏈接與動態(tài)鏈接的選擇。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++基于CMD命令行實(shí)現(xiàn)掃雷小游戲

    C++基于CMD命令行實(shí)現(xiàn)掃雷小游戲

    這篇文章主要為大家詳細(xì)介紹了C++基于CMD命令行實(shí)現(xiàn)掃雷小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • C++中對象的常引用總結(jié)

    C++中對象的常引用總結(jié)

    以下是對C++中對象的常引用進(jìn)行了詳細(xì)的總結(jié)介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • OpenCV中C++函數(shù)imread讀取圖片的問題及解決方法

    OpenCV中C++函數(shù)imread讀取圖片的問題及解決方法

    利用C++函數(shù)imread讀取圖片的時候返回的結(jié)果總是空,而利用C函數(shù)cvLoadImage時卻能讀取到圖像。怎么回事?今天小編通過本教程給大家簡單說明原因
    2017-03-03
  • C語言實(shí)現(xiàn)簡單停車場管理系統(tǒng)

    C語言實(shí)現(xiàn)簡單停車場管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)簡單停車場管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • C++貪心算法處理多機(jī)調(diào)度問題詳解

    C++貪心算法處理多機(jī)調(diào)度問題詳解

    貪心算法(又稱貪婪算法)是指,在對問題求解時,總是做出在當(dāng)前看來是最好的選擇。也就是說,不從整體最優(yōu)上加以考慮,他所做出的僅是在某種意義上的局部最優(yōu)解
    2022-06-06
  • C++ Boost Any示例分析使用

    C++ Boost Any示例分析使用

    Boost是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱。Boost庫是一個可移植、提供源代碼的C++庫,作為標(biāo)準(zhǔn)庫的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開發(fā)引擎之一,是為C++語言標(biāo)準(zhǔn)庫提供擴(kuò)展的一些C++程序庫的總稱
    2022-11-11
  • C++實(shí)現(xiàn)圖形界面時鐘表盤代碼

    C++實(shí)現(xiàn)圖形界面時鐘表盤代碼

    這篇文章主要介紹了C++實(shí)現(xiàn)圖形界面時鐘表盤代碼,涉及坐標(biāo)函數(shù)的應(yīng)用及圖形界面程序設(shè)計,需要的朋友可以參考下
    2014-10-10
  • C語言完全平方整數(shù)的判斷

    C語言完全平方整數(shù)的判斷

    大家好,本篇文章主要講的是C語言完全平方整數(shù)的判斷,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • C語言文件打開的模式

    C語言文件打開的模式

    這篇文章主要介紹了C語言文件打開的模式,以及相關(guān)的原理和知識點(diǎn)做了分享,有興趣的朋友參考學(xué)習(xí)下。
    2018-03-03

最新評論

墨竹工卡县| 武城县| 丰原市| 繁峙县| 东城区| 闻喜县| 滕州市| 天镇县| 公主岭市| 家居| 平原县| 长海县| 岗巴县| 天柱县| 巍山| 西乡县| 原阳县| 安吉县| 舒城县| 罗甸县| 永城市| 和林格尔县| 木兰县| 锦州市| 肥城市| 永寿县| 潞城市| 罗城| 太和县| 伊宁市| 平顺县| 如皋市| 石河子市| 四子王旗| 阿尔山市| 岚皋县| 阜城县| 张家口市| 万盛区| 务川| 洪湖市|