日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

Q4MP_gh_c472c21 ? 來(lái)源:小林coding ? 作者:小林coding ? 2021-06-27 11:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

01

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

想要理解C++語(yǔ)言中的this指針,下面我們做一個(gè)舉例,我們要先把下面的C++代碼轉(zhuǎn)換成C代碼:

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

(1)大家知道,C語(yǔ)言中沒(méi)有類(lèi)定義class關(guān)鍵詞,但是有跟class類(lèi)似的定義關(guān)鍵詞,就是struct結(jié)構(gòu)體定義。m_height變量是Tree類(lèi)的成員變量,那么我們就可以把Tree類(lèi)和成員變量翻譯成下面的C代碼:

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

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

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

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

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

所以最終把上面的C++程序轉(zhuǎn)變?yōu)镃程序的代碼如下:

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

加上SetHeignt函數(shù)的第一個(gè)參數(shù)this指針的作用,就是為了給結(jié)構(gòu)體Tree域里的變量賦值。

02

this指針的作用

this指針的作用就是指向成員函數(shù)所作用的對(duì)象,所以非靜態(tài)成員函數(shù)中可以直接使用this來(lái)代表指向該函數(shù)作用的對(duì)象的指針。

03

this指針和靜態(tài)成員函數(shù)

靜態(tài)成員函數(shù)不能使用this指針,因?yàn)殪o態(tài)成員函數(shù)相當(dāng)于是共享的變量,不屬于某個(gè)對(duì)象的變量。

04

小結(jié)

(1)通過(guò)將C++程序翻譯成C程序的方式,來(lái)理解this指針,其作用就是指向非靜態(tài)成員函數(shù)所作用的對(duì)象,每個(gè)成員函數(shù)的第一個(gè)參數(shù)實(shí)際上都有個(gè)默認(rèn)this指針參數(shù);(2)靜態(tài)成員函數(shù)無(wú)法使用this指針。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4422

    瀏覽量

    67869
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2131

    瀏覽量

    77417
  • C程序
    +關(guān)注

    關(guān)注

    4

    文章

    255

    瀏覽量

    37688

原文標(biāo)題:C++中this指針的理解和作用

文章出處:【微信號(hào):gh_c472c2199c88,微信公眾號(hào):嵌入式微處理器】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    使用VectorCAST/C++的AI輔助測(cè)試功能

    從2026版本開(kāi)始,VectorCAST/C++推出首批AI輔助測(cè)試功能,旨在幫助開(kāi)發(fā)團(tuán)隊(duì)解決單元測(cè)試過(guò)程的兩個(gè)核心難點(diǎn):
    的頭像 發(fā)表于 04-27 14:37 ?278次閱讀

    C++ 11 14 17 20內(nèi)存管理-指針、智能指針和內(nèi)存池基礎(chǔ)與提升

    pan.baidu.com/s/1g64x9D_jp9ufk4uBpQBmvA?pwd=497f? 未來(lái) C++ 底層核心:內(nèi)存管理實(shí)戰(zhàn),從指針到內(nèi)存池全鏈路進(jìn)階 站在2026年的技術(shù)潮頭,當(dāng)AI
    的頭像 發(fā)表于 04-20 15:51 ?549次閱讀

    C++與lua聯(lián)合編程

    對(duì)“尾部風(fēng)險(xiǎn)”(小概率但毀滅性的事件)的對(duì)沖。在 C++ 與 Lua 的交互,最可怕的尾部風(fēng)險(xiǎn)就是內(nèi)存泄漏與棧溢出。 很多初學(xué)者在調(diào)用 Lua C API 時(shí),由于不理解棧的絕對(duì)索引
    發(fā)表于 04-19 16:27

    C++:const 的空間,常量也能占內(nèi)存?

    5g.5jh.dg8sg.cnJIWWQc++語(yǔ)言 c++語(yǔ)言5g.Zq2.dg8sg.cnJIWWQc++語(yǔ)言 def lock_tetromino(self): \"\"\"將落地的方塊鎖定到網(wǎng)格
    發(fā)表于 04-16 19:19

    keil實(shí)現(xiàn)cc++混合編程

    起因項(xiàng)目中使用到一個(gè)開(kāi)源的模擬IIC的庫(kù),封裝的比較好,但是是使用c++寫(xiě)的。于是將其移植到自己的項(xiàng)目中,主要有以下三步操作: 在工程選項(xiàng) C/C++中去掉勾選
    發(fā)表于 01-26 08:58

    指針與函數(shù)詳解

    可以運(yùn)行的,上面的示例代碼就是函數(shù)指針C語(yǔ)言中的最常見(jiàn)形態(tài)。之前的例子只是為了讓你更能理解函數(shù)指針,實(shí)際開(kāi)發(fā)只需要用函數(shù)
    發(fā)表于 01-23 06:02

    C語(yǔ)言重點(diǎn)—指針

    C語(yǔ)言是比較偏底層的語(yǔ)言,為什么他比較偏底層,就是因?yàn)樗暮芏嗖僮鞫际侵苯俞槍?duì)內(nèi)存操作的。 這篇我們就來(lái)講解C語(yǔ)言的一大特點(diǎn),也是難點(diǎn),指針指針操作。 這篇文章我會(huì)先從基本類(lèi)型的存儲(chǔ)
    發(fā)表于 01-22 08:23

    C語(yǔ)言與C++的區(qū)別及聯(lián)系

    缺點(diǎn):性能比面向過(guò)程低。 二、具體語(yǔ)言上的區(qū)別 1、關(guān)鍵字的不同 C語(yǔ)言有32個(gè)關(guān)鍵字;C++有63個(gè)關(guān)鍵字。 2、后綴名不同 C源文件后綴.c
    發(fā)表于 12-24 07:23

    函數(shù)指針指針函數(shù)的區(qū)別

    用同類(lèi)型的指針變量來(lái)接受,也就是說(shuō),指針函數(shù)一定有函數(shù)返回值,而且,在主調(diào)函數(shù),函數(shù)返回值必須賦給同類(lèi)型的指針變量。   表示:   float *fun();   float *p
    發(fā)表于 12-12 06:34

    CC++之間的聯(lián)系

    1、語(yǔ)法兼容性: C++完全兼容C語(yǔ)言的語(yǔ)法,這意味著任何有效的C語(yǔ)言程序都可以直接在C++編譯器下編譯通過(guò)。 2、底層控制: C++
    發(fā)表于 12-11 06:51

    C語(yǔ)言和C++之間的區(qū)別是什么

    函數(shù)重載,即在同一作用域內(nèi)可以定義多個(gè)同名函數(shù),只要它們的參數(shù)列表不同即可。 C語(yǔ)言不支持函數(shù)重載,每個(gè)函數(shù)必須具有唯一的標(biāo)識(shí)符。 4、異常處理: C++內(nèi)置了異常處理機(jī)制,允許程序在遇到無(wú)法正常
    發(fā)表于 12-11 06:23

    C++程序異常的處理機(jī)制

    1、什么是異常處理? 有經(jīng)驗(yàn)的朋友應(yīng)該知道,在正常的CC++編程過(guò)程難免會(huì)碰到程序不按照原本設(shè)計(jì)運(yùn)行的情況。 最常見(jiàn)的有除法分母為零,數(shù)組越界,內(nèi)存分配失效、打開(kāi)相應(yīng)文件失敗等等。 一個(gè)程序
    發(fā)表于 12-02 07:12

    C/C++代碼靜態(tài)測(cè)試工具Perforce QAC 2025.3的新特性

    對(duì)?Perforce Validate??QAC?項(xiàng)目的相對(duì)/根路徑的支持。C++?分析也得到了增強(qiáng),增加了用于檢測(cè) C++?并發(fā)問(wèn)題的新檢查,并改進(jìn)了實(shí)體名稱(chēng)和實(shí)
    的頭像 發(fā)表于 10-13 18:11 ?756次閱讀
    <b class='flag-5'>C</b>/<b class='flag-5'>C++</b>代碼靜態(tài)測(cè)試工具Perforce QAC 2025.3的新特性

    技能+1!如何在樹(shù)莓派上使用C++控制GPIO?

    和PiGPIO等庫(kù),C++可用于編程控制樹(shù)莓派的GPIO引腳。它提供了更好的性能和控制能力,非常適合對(duì)速度和精度要求較高的硬件項(xiàng)目。在樹(shù)莓派社區(qū),關(guān)于“Python
    的頭像 發(fā)表于 08-06 15:33 ?4519次閱讀
    技能+1!如何在樹(shù)莓派上使用<b class='flag-5'>C++</b>控制GPIO?

    主流的 MCU 開(kāi)發(fā)語(yǔ)言為什么是 C 而不是 C++?

    在單片機(jī)的地界兒里,C語(yǔ)言穩(wěn)坐中軍帳,C++想分杯羹?難嘍。咱電子工程師天天跟那針尖大的內(nèi)存空間較勁,C++那些花里胡哨的玩意兒,在這兒真玩不轉(zhuǎn)。先說(shuō)內(nèi)存這道坎兒。您當(dāng)stm32f4的256kRAM
    的頭像 發(fā)表于 05-21 10:33 ?1227次閱讀
    主流的 MCU 開(kāi)發(fā)語(yǔ)言為什么是 <b class='flag-5'>C</b> 而不是 <b class='flag-5'>C++</b>?
    韶山市| 胶州市| 黄山市| 宕昌县| 获嘉县| 阳东县| 长岛县| 浦城县| 武川县| 娄底市| 方山县| 邢台市| 永嘉县| 当涂县| 淮南市| 连云港市| 云霄县| 灵石县| 富蕴县| 理塘县| 监利县| 庆云县| 嫩江县| 山东| 镇原县| 汉川市| 宝坻区| 北海市| 英吉沙县| 庐江县| 新密市| 托克逊县| 满洲里市| 平顶山市| 镇安县| 宾川县| 长垣县| 滦南县| 武胜县| 秭归县| 安平县|