女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

淺析C++中this指針的理解以及作用

Q4MP_gh_c472c21 ? 來源:小林coding ? 作者:小林coding ? 2021-06-27 11:24 ? 次閱讀

01

C++程序到C程序的翻譯

想要理解C++語言中的this指針,下面我們做一個舉例,我們要先把下面的C++代碼轉換成C代碼:

f2e45c3c-d6b2-11eb-9e57-12bb97331649.png

(1)大家知道,C語言中沒有類定義class關鍵詞,但是有跟class類似的定義關鍵詞,就是struct結構體定義。m_height變量是Tree類的成員變量,那么我們就可以把Tree類和成員變量翻譯成下面的C代碼:

f3178a58-d6b2-11eb-9e57-12bb97331649.png

(2)SetHeight函數是Tree類的成員函數,但是C程序里面沒有成員函數這個概念的,所以只能把成員函數翻譯成全局的函數:

f3214476-d6b2-11eb-9e57-12bb97331649.png

那為什么還要再加個this指針呢?我們接著繼續往下看。(3)接下來把C++中的main函數翻譯成C程序,是下面這樣的:

f3308c4c-d6b2-11eb-9e57-12bb97331649.png

所以最終把上面的C++程序轉變為C程序的代碼如下:

f3396024-d6b2-11eb-9e57-12bb97331649.png

加上SetHeignt函數的第一個參數this指針的作用,就是為了給結構體Tree域里的變量賦值。

02

this指針的作用

this指針的作用就是指向成員函數所作用的對象,所以非靜態成員函數中可以直接使用this來代表指向該函數作用的對象的指針。

03

this指針和靜態成員函數

靜態成員函數不能使用this指針,因為靜態成員函數相當于是共享的變量,不屬于某個對象的變量。

04

小結

(1)通過將C++程序翻譯成C程序的方式,來理解this指針,其作用就是指向非靜態成員函數所作用的對象,每個成員函數的第一個參數實際上都有個默認this指針參數;(2)靜態成員函數無法使用this指針。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 函數
    +關注

    關注

    3

    文章

    4368

    瀏覽量

    64185
  • C++
    C++
    +關注

    關注

    22

    文章

    2117

    瀏覽量

    74777
  • C程序
    +關注

    關注

    4

    文章

    255

    瀏覽量

    36596

原文標題:C++中this指針的理解和作用

文章出處:【微信號:gh_c472c2199c88,微信公眾號:嵌入式微處理器】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    C++學到什么程度可以找工作?

    C++學到什么程度可以找工作?要使用C++找到工作,特別是作為軟件開發人員或相關職位,通常需要掌握以下幾個方面: 1. **語言基礎**:你需要對C++的核心概念有扎實的理解,包括但不
    發表于 03-13 10:19

    指針被釋放后就變成了空指針

    ;} ? ? 這段代碼大家看下有沒有問題,能不能順利運行? 前面三行都沒有問題,指針 s 指向了一塊堆內存,把字符串 helloworld 拷貝到堆內存,然后釋放了 s。 問題就出在這,很多同學不理解
    的頭像 發表于 01-22 09:23 ?326次閱讀

    Spire.XLS for C++組件說明

    Spire.XLS for C++ 是一款專業的 C++ Excel 組件,可以用在各種 C++ 框架和應用程序。Spire.XLS for C+
    的頭像 發表于 01-14 09:40 ?514次閱讀
    Spire.XLS for <b class='flag-5'>C++</b>組件說明

    EE-112:模擬C++的類實現

    電子發燒友網站提供《EE-112:模擬C++的類實現.pdf》資料免費下載
    發表于 01-03 15:15 ?0次下載
    EE-112:模擬<b class='flag-5'>C++</b><b class='flag-5'>中</b>的類實現

    C語言程序設計教程第4版第8講:指針

    C語言指針講解
    發表于 11-20 14:10 ?5次下載

    C語言指針學習筆記

    本文從底層內存分析,徹底讓讀者明白C語言指針的本質。
    的頭像 發表于 11-05 17:40 ?554次閱讀
    <b class='flag-5'>C</b>語言<b class='flag-5'>指針</b>學習筆記

    C語言和C++結構體的區別

    同樣是結構體,看看在C語言和C++中有什么區別?
    的頭像 發表于 10-30 15:11 ?653次閱讀

    C語言指針運算符詳解

    C語言中,當你有一個指向數組某個元素的指針時,你可以對該指針執行某些算術運算,例如加法或減法。這些運算可以用來遍歷數組的元素,如ptr
    的頭像 發表于 10-30 11:16 ?658次閱讀

    C7000優化C/C++編譯器

    電子發燒友網站提供《C7000優化C/C++編譯器.pdf》資料免費下載
    發表于 10-30 09:45 ?0次下載
    <b class='flag-5'>C</b>7000優化<b class='flag-5'>C</b>/<b class='flag-5'>C++</b>編譯器

    ostream在c++的用法

    ostream 是 C++ 標準庫中一個非常重要的類,它位于 頭文件(實際上,更常見的是通過包含 頭文件來間接包含 ,因為 包含了 和 )。 ostream 類及其派生類(如 std::cout
    的頭像 發表于 09-20 15:11 ?1676次閱讀

    面試常考+1:函數指針指針函數、數組指針指針數組

    在嵌入式開發領域,函數指針指針函數、數組指針指針數組是一些非常重要但又容易混淆的概念。理解它們的特性和應用場景,對于提升嵌入式程序的效率
    的頭像 發表于 08-10 08:11 ?1326次閱讀
    面試???1:函數<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>函數、數組<b class='flag-5'>指針</b>與<b class='flag-5'>指針</b>數組

    C++語言基礎知識

    電子發燒友網站提供《C++語言基礎知識.pdf》資料免費下載
    發表于 07-19 10:58 ?8次下載

    C++實現類似instanceof的方法

    函數,可實際上C++沒有。但是別著急,其實C++中有兩種簡單的方法可以實現類似Java的instanceof的功能。 在 C++
    的頭像 發表于 07-18 10:16 ?857次閱讀
    <b class='flag-5'>C++</b><b class='flag-5'>中</b>實現類似instanceof的方法

    面試的高頻問題:指針函數與函數指針,你能完美應對嗎?

    一直覺得C語言較其他語言最偉大的地方就是C語言中的指針,有些人認為指針很簡單,而有些人認為指針很難,當然這里的對簡單和難并不是等價于對
    的頭像 發表于 06-22 08:11 ?2199次閱讀
    面試<b class='flag-5'>中</b>的高頻問題:<b class='flag-5'>指針</b>函數與函數<b class='flag-5'>指針</b>,你能完美應對嗎?

    Keil+C51對雙數據指針的直接利用

    Keil+C51對雙數據指針的直接利用
    發表于 06-18 10:15 ?0次下載