this指標使用說明

2021-05-04 09:57:08 字數 642 閱讀 8468

class base {};

class d : public base

}; d() : base() {}這行程式在執行時this指標是怎麼傳遞的?

首先構造基類,在基類的基礎上構造子類,所以,首先傳遞給base()建構函式的this指標不是d類物件的位址,而是d類物件中的父類部分的位址,這兩個位址是相同的,在構造父類的時候,父類的建構函式是意識不到子類的存在的,也不會知道當前正在構造的物件有朝一日會被子類的建構函式「改造」成子類物件,

只要是單繼承,this指標在繼承層次中的任意乙個建構函式內部都是相同的值,只不過意義不一樣罷了,在當前的建構函式內只構造當前類的物件。

比如:

derived& operator= (const derived& other)

既然物件已近構造完成了,傳遞到operator=的當然是子類物件的位址了,這裡面有一點,子類物件也是父類型別,就跟車派生於交通工具,汽車火車都是交通工具型別一樣,所以可以繼續在函式體內呼叫 base::operator=(other),這個時候傳遞給父類物件的指標會被自動轉換,轉換的目標就是基類過載的operator=引數型別,在本例來說,other的位址會退化成base物件的位址傳遞給基類的賦值函式。

基類先構造,還有物件的this指標是在建構函式中被初始化的。

使用說明 附註工具使用說明

附註工具使用說明 附註工具用途 附註工具主要用於更新利用word附註應用程式生成的帶域 的附註,該工具在word右鍵 更新鏈結 的基礎上進行了優化,故在使用時,不能再利用word右鍵 更新鏈結 而要用本工具的 更新當前鏈結 或 更新所有鏈結 使用說明 一 更換路徑 當利用word附註應用程式生成帶域...

使用說明 農用遮光網使用說明

農用遮光網使用說明 建築防塵網購買方 建築施工企業 在購買建築防塵網時,應該對 作出比較,可以分辨品牌 型號,且購買時應該在一定程度上了解信譽良莠。建築防塵網購買方 市場售賣方 在選購建築防塵網時,可以把 作為基礎,好的 可以用來彌補信譽不足,而差的 則需要按照你的服務收費。農用遮光網使用說明 用途...

Hibernate tools 使用說明

05年的8月份第一次接觸hibernate tools,使用起來感覺還不錯,但也沒有深入研究,後來由於一直在做乙個專案,再後來用了一陣myeclipse,現在換了公司,使用wtp all in one eclipse的乙個版本 生成domain的時候使用了hibernate tools,發現都不知怎...