讀書筆記2

2021-03-31 08:56:31 字數 1121 閱讀 9661

關於this指標

雖然this指標大家已經很熟悉了,但是我這裡討論的關於this指標的問題可能大家還沒注意過:

為了說明這個關於this的歸屬問題,我自寫了一段再簡單不過的程式,雖簡單但具體:

#include

class a

void aa()

我的問題是指標p1是指向b自身嗎?

一看程式,大家就知道:不是,p1指標是指向b的乙個隱含父類a的。

對,答案對了(如果你對這一點也懷疑,那你只有自己到vc上試試了。),

在此,我也可以直接給乙個證據,那就是上面的編譯錯,因為a中不存在m_data3。

你的答案其實說明我想要得的乙個結論1,那就是this(程式中的)指標是指向a的。

但是,我想問既然p1是指向b的父類的,那麼b.p1->aaa()應該呼叫的是那個函式呢?

答案是b中的那個,如果不是虛函式呢,結果就是a中的那個了(這從結論1中可知),

原來是虛函式搗的鬼,但是這是為什麼呢?

雖然從一般意義上好像是這樣,但是,p1指標自始至終都是指向a的吧?不是父類的指標指向子類的情況吧?

因為沒有出現p1=&b的語句吧。:)

關於多型與虛函式

總結如下:

1)指標:父類的指標可以指向子類物件,但只能呼叫自身的成員函式和成員變數,除虛函式

外;子類的指標只能指向由父類顯示型別轉換為子類的物件,呼叫的是子類自身的

函式和變數,除虛函式外。

2)無指標(物件之間的型別轉換):父類物件可以轉化為子類物件,仍只能調有

自身的函式和變數,不能呼叫子類的函式和成員,與虛函式無關;子類物件不能顯示

的轉換為父類物件,除非人為編寫相關**。

即:虛函式必須與指標一起使用;除開虛函式之外,繼承類之間的型別轉換沒有

什麼直接作用。

物件生存方式

四種:stack、 heap、 global、 local static

產生方法:

第一種:在函式中,main()之內

第二種:new方法

第三種:在任何函式範圍之外,由startup**對其初始化。

第四種:在函式範圍之內的靜態物件

讀書筆記(2)

沉默的藝術 意識科學基礎理論 量子效應只是用於穩定某種內在自由度極大的基本粒子,然後再用基本粒子的內在屬性產生意識體驗。只能通過呈現乙個系統的 物理 屬性來描述乙個系統。只能通過變成內在屬性配對的其中乙個系統,以直接體驗的方式來獲得這些內在屬性的資訊。定義乙個包含所有系統的系統d,除該系統外無任何系...

讀書筆記2

ripple專注於跨境支付領域,主要為銀行和其他金融機構提供基於區塊鏈協議的外匯 轉賬方案。目前已公布的銀行客戶有3家,並正在和另外80多家銀行深入洽談。ripple主 要通過其開發的interledger協議專案,在保持銀行等金融機構的各自不同的記賬系統的基 礎上,打造乙個全球統一的網路金融傳輸協...

讀書筆記 模板 2

模板的編譯模型 應該將類定義和函式宣告放在標頭檔案中,而普通函式和類成員函式的定義放在原始檔中。要進行模板的例項化,便一起必須能訪問定義模板的源 1 包含編譯模型 utlities.h ifndef utlities h define utlities h templateint compare c...