在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

    文章

    4341

    瀏覽量

    62800
  • C++
    C++
    +關注

    關注

    22

    文章

    2113

    瀏覽量

    73742
  • C程序
    +關注

    關注

    4

    文章

    255

    瀏覽量

    36074

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

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

收藏 人收藏

    評論

    相關推薦

    Spire.XLS for C++組件說明

    Spire.XLS for C++ 是一款專業的 C++ Excel 組件,可以用在各種 C++ 框架和應用程序。Spire.XLS for C+
    的頭像 發表于 01-14 09:40 ?67次閱讀
    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語言指針學習筆記

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

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

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

    C語言指針運算符詳解

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

    ostream在c++的用法

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

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

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

    C++實現類似instanceof的方法

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

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

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

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

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

    鴻蒙OS開發實例:【Native C++

    使用DevEco Studio創建一個Native C++應用。應用采用Native C++模板,實現使用NAPI調用C標準庫的功能。使用C標準庫hypot接口計算兩個給定數平方和的平
    的頭像 發表于 04-14 11:43 ?2703次閱讀
    鴻蒙OS開發實例:【Native <b class='flag-5'>C++</b>】

    使用 MISRA C++:2023? 避免基于范圍的 for 循環中的錯誤

    在前兩篇博客,我們?向您介紹了新的 MISRA C++ 標準?和?C++ 的歷史?。在這篇博客,我們將仔細研究以 C++
    的頭像 發表于 03-28 13:53 ?832次閱讀
    使用 MISRA <b class='flag-5'>C++</b>:2023? 避免基于范圍的 for 循環中的錯誤

    C語言的指針用法

    C語言編程善用指針可以簡化一些任務的處理,而對于一些任務(比如動態內存分配),必須要有指針才行的。也就是說精通C
    發表于 03-05 14:22 ?381次閱讀
    <b class='flag-5'>C</b>語言的<b class='flag-5'>指針</b>用法

    怎么理解指針指針

    怎么理解指針指針?其實這個概念并不難,只是把它放到實際應用,容易造成困擾。
    的頭像 發表于 02-23 16:46 ?1234次閱讀
    怎么<b class='flag-5'>理解</b><b class='flag-5'>指針</b>的<b class='flag-5'>指針</b>?

    c語言,c++,java,python區別

    操作系統、嵌入式系統等對性能要求較高的場景。C語言的語法相對簡單,學習曲線較平緩,也是學習其他高級語言的入門語言。 C++C++是在C語言的基礎上進行擴展和改進的一種編程語言。它支
    的頭像 發表于 02-05 14:11 ?2502次閱讀
    主站蜘蛛池模板: 在厨房乱子伦在线观看| 欧美人与动另类在线| 天天草天天草| 激情婷婷六月天| 性欧美高清短视频免费| 亚洲夜夜爱| 欧美+日本+国产+在线观看| 校园激情综合网| 欧美无遮挡一区二区三区| 成人国产激情福利久久精品| 亚色中文字幕| 痴女中文字幕在线视频| 老逼影院| 日本电影在线观看黄| 婷婷了五月色香综合缴情| 最新黄色大片| 正在播放一区二区| 日美一级毛片| 亚洲欧美成人| 免费看h的网站| 成人黄色网址| 中文一区二区在线观看| 一区二区三区四区在线视频| 天天躁狠狠躁夜躁2021| 5566在线观看| xx性欧美| 67pao强力打造高清免费| 乱高h辣黄文np公交车| 亚洲高清成人| 一级做α爰片久久毛片| 日本理论午夜中文字幕第一页| 天堂电影免费在线观看| 一级毛片 在线播放| 99久久99久久久精品齐齐鬼色| 日本在线观看一区| 亚洲人在线| 天堂网在线www| 美女一级毛片毛片在线播放| 久久伊人男人的天堂网站| cijilu刺激 国产免费的| www.五月婷婷.com|