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

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

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

C++封裝:this指針

如意 ? 來源:CSDN ? 作者:cherrydreamsover ? 2020-06-29 14:37 ? 次閱讀

this指針

特性

(1)this指針的類型:類類型* const。

(2)this指針并不是對象本身的一部分,不影響sizeof的結(jié)果。

(3)this是一個指針,它時時刻刻指向?qū)ο蟮膶嵗?/p>

(4)this指針的作用域在類成員函數(shù)的內(nèi)部(不嚴謹)。

(5)this指針是類成員函數(shù)的第一個默認隱含參數(shù),編譯器自動維護傳遞。

(6)只有類的非靜態(tài)成員函數(shù)中才可以使用this指針,其它成員函數(shù)都不可以。

_thiscall調(diào)用約定

(1)_thiscall只能夠在類的成員函數(shù)上;

(2)參數(shù)從右向左壓棧;

(3)如果參數(shù)個數(shù)確定,this指針通過ecx傳給被調(diào)用者。如果參數(shù)不確定,this指針在所有參數(shù)被壓棧后壓入堆棧;

(4)參數(shù)個數(shù)不定的,調(diào)用者清理堆棧,否則函數(shù)自己清理堆棧。

this指針是否為空?

C++封裝:this指針

當將空的this傳給test函數(shù)時,test沒有調(diào)用任何函數(shù),因此執(zhí)行此函數(shù),沒有報錯;

當把空的this傳給change函數(shù)時,通過this指針調(diào)用this-》name,由于this是空的,因此會出錯。

總結(jié):

(1)NULL對象指針可以調(diào)用成員函數(shù);

(2)通過對象調(diào)用成員函數(shù),對象的指針會被傳入函數(shù)中,指針名稱為this;

(3)NULL對象指針調(diào)用成員函數(shù)時,只要不訪問此對象的成員變量,則程序正常運行;

(4)NULL對象指針調(diào)用成員函數(shù)時,一旦訪問此對象的成員變量,則程序崩潰。

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

    關(guān)注

    125

    文章

    7589

    瀏覽量

    142138
  • 指針
    +關(guān)注

    關(guān)注

    1

    文章

    475

    瀏覽量

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

    關(guān)注

    21

    文章

    2084

    瀏覽量

    73300
  • this
    +關(guān)注

    關(guān)注

    0

    文章

    5

    瀏覽量

    3248
收藏 人收藏

    評論

    相關(guān)推薦

    淺談C/C++里的指針

    指針CC++中的難點和重點。指針C的靈魂。我不想重復(fù)大多數(shù)書上說得很清楚的東西,只是把我看過的書中說得不清楚或沒有說,而我又覺得我理解
    發(fā)表于 06-28 10:21 ?362次閱讀

    MATLAB代碼轉(zhuǎn)c++封裝dll供labview調(diào)用

    MATLAB可以通過指針讀取buffer里面的圖像嗎,最近涉及MATLAB與labview混合編程,需要將MATLAB代碼轉(zhuǎn)成c++封裝成dll。其中MATLAB代碼部分卡在了不知道如何通過
    發(fā)表于 06-11 11:28

    請問STM32 C++底層封裝怎么實現(xiàn)?

    DMA和中斷為什么使用指針?請問STM32 C++底層封裝怎么實現(xiàn)?
    發(fā)表于 11-22 06:08

    C指針_CC++經(jīng)典著作

    C指針_CC++經(jīng)典著作,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 11-16 18:32 ?0次下載

    C++實驗--指針

    C++實驗--指針
    發(fā)表于 12-30 14:50 ?1次下載

    C++指針”學習建議

    C++指針”學習建議
    發(fā)表于 03-31 15:53 ?3次下載

    為什么使用指針?C++中的“指針

    為什么使用指針?因為在操作大型數(shù)據(jù)和類時,指針可以通過內(nèi)存地址直接訪問數(shù)據(jù),可避免在程序中復(fù)制大量的代碼,因此指針的效率最高。一般來說,指針會有3大用途
    的頭像 發(fā)表于 10-04 10:33 ?5020次閱讀

    如何從C轉(zhuǎn)向C++ Effective C++ PDF中文版教材免費下載

    對每個人來說,習慣 C++需要一些時間,對于已經(jīng)熟悉C 的程序員來說,這個過程尤其令人苦惱。因為CC++的子集,所有的C 的技術(shù)都可以繼
    發(fā)表于 01-10 16:48 ?0次下載

    C++程序設(shè)計教程之指針的詳細資料說明

    本文檔詳細介紹的是C++程序設(shè)計教程之指針的詳細資料說明主要內(nèi)容包括了:1. 指針的概念,2. 變量與指針,3. 數(shù)組與指針,4. 字符串與
    發(fā)表于 03-14 16:04 ?7次下載
    <b class='flag-5'>C++</b>程序設(shè)計教程之<b class='flag-5'>指針</b>的詳細資料說明

    C++指針的學習建議

     一。對于眾多人提出的c/c++指針難學的問題做個總結(jié):
    發(fā)表于 11-07 17:13 ?8次下載
    <b class='flag-5'>C++</b><b class='flag-5'>指針</b>的學習建議

    CC++經(jīng)典著作《C指針

    CC++經(jīng)典著作《C指針
    發(fā)表于 01-17 09:46 ?0次下載

    C++中有函數(shù)指針還需要std::function嘛

    C/C++中可以使用指針指向一段代碼,這個指針就叫函數(shù)指針,假設(shè)有這樣一段代碼:
    的頭像 發(fā)表于 02-15 14:13 ?433次閱讀
    <b class='flag-5'>C++</b>中有函數(shù)<b class='flag-5'>指針</b>還需要std::function嘛

    C++的引用和指針

    之前的文章我們已經(jīng)介紹了C++中的基本類型如int,bool和double等,除了基本類型C++還有一些更復(fù)雜的數(shù)據(jù)類型復(fù)合類型,所謂的復(fù)合類型就是通過其他類型定義的類型,本篇文章我們將會著重介紹C++的復(fù)合類型引用和
    的頭像 發(fā)表于 03-17 14:00 ?549次閱讀

    C語言 / C++基礎(chǔ)面試知識大集合

    點擊上方名片關(guān)注我們C語言和C++相關(guān)的面試題一直比較少見一些,沒有Java方向?qū)懙娜四敲炊?,這是一篇C語言與C++面試知識點總結(jié)的文章,非常難得。const作用修飾變量,說明該變量不
    的頭像 發(fā)表于 05-26 10:38 ?693次閱讀
    <b class='flag-5'>C</b>語言 / <b class='flag-5'>C++</b>基礎(chǔ)面試知識大集合

    C++智能指針的底層實現(xiàn)原理

    C++智能指針的頭文件: #include 1. shared_ptr: 智能指針從本質(zhì)上來說是一個模板類,用類實現(xiàn)對指針對象的管理。 template class shared_pt
    的頭像 發(fā)表于 11-09 14:32 ?572次閱讀
    <b class='flag-5'>C++</b>智能<b class='flag-5'>指針</b>的底層實現(xiàn)原理