C 筆記之this的理解

2021-08-21 16:51:13 字數 738 閱讀 2091

先寫一段示例**

#include using namespace std;

class a

std::string geta1() const

std::string geta2() const

private:

std::string m_stra1;

std::string m_stra2;

};int main()

上例中,函式geta1()返回類a的資料成員m_stra1,引用c++ primer中的原話,如果geta1()指向a的成員,則它隱式地指向呼叫該函式的物件的成員。上面的geta1返回m_stra1時,實際上時隱式地返回a.m_stra1。成員函式通過乙個名為this的額外的隱式引數來訪問呼叫它的那個物件。當我們呼叫乙個成員函式時,用請求函式的物件位址初始化this。例如,如果呼叫a.geta1(),則編譯器負責把a的位址傳遞給geta1的隱式形參this。

在成員函式內部,可以直接使用該函式的物件

的成員,因為this所指的正是這個物件。任何對類成員的直接訪問都被看作this的隱式引用。實現起來就像示例中的geta2()函式。

在geta2()定義中,有const關鍵字。this的目的總是指向「這個」物件,所以this指標是乙個常量指標(個人理解就是類一旦例項化,那麼實力化出的物件位址就是確定的了,因此說時乙個常量指標),常量指標的話,不允許改變this中儲存的位址。

C 學習筆記之函式理解

c 中推薦使用內聯函式替代c中巨集 片段,使用inline關鍵字宣告內聯函式,c中巨集 片段。define void fun a,b a b a b c 中內聯函式時關鍵字inline必須和函式定義結合在一起,否則編譯器會直接忽略內聯請求。inline void fun inline 和實現寫在一起...

c 之繼承的理解

面對物件程式設計 繼承是為了解決 的復用性 1.怎麼解決 的復用性?組合和繼承 組合 將乙個類作為另乙個類的物件成員。class a class b private a a 繼承 使用已有的類來建立新的類,新的類具有原有類的所有屬性和操作,也可以增加新的屬性和方法。原有的類稱為基類或者父類,新的類稱...

新手上路之c指標理解 筆記

曾經指標讓我如夢如幻,指標如霧啊,很多人都被折磨的要死不活的,問老師吧,你又不是計算機的,曉得那麼清楚幹嘛,看了一些網上大牛們和老師們的高見,分享一下心得,有錯誤的地方,還請多多指正.為啥需要指標呢,我不用它,照樣可以用其他方式實現,感覺用的還那麼方便易懂.指標的好處在 呢?早期cpu遠沒有如今的強...