乙個類只有乙個指標嗎?

2021-04-02 21:29:57 字數 737 閱讀 6328

c++

中類的指標

乙個類只有乙個指標嗎?比如

this

指標。事實上每乙個基類都有乙個指標,這樣乙個多重繼承和多型繼承的類就有多個

this

指標,但如果所有這些類層次都是單一繼承,那麼所有指標都是相同的,指向例項的起始位置。

this

指標並不會真實的存貯在某個地方,它是編譯器在編譯時確定的,就象

sizeof

運算子。我們要清楚,在類的不同層次位置使用的

this

指標的值並不一定相同(在多型繼承的情況下)。

不僅僅是

this

指標,編譯器會自動對不同的指標型別賦不同的值。比如下面的**:

class a ;

class b ;

class c:public a,public b ;

int main()

測試結果

,pa並不等於

pb。可見類的指標的賦值不同於通常的變數賦值。實際上因為a*或

b*的型別與

&c並不相同

(c*)

,這裡包含乙個自動的型別轉換。正是這個型別轉換自動為pa和

pb賦予了不同的值。這樣,保證了在使用這些指標訪問類的成員時的正確性。

要注意同乙個類的例項,它的不同型別(基類)的指標並不一定相同。這發生在兩種情況下:一種是多繼承,另一種是基類沒有虛函式,而派生類有虛函式。這兩種情況,派生類和基類的指標都不相同。

保證乙個類只有乙個例項存在

需求 在做一些彈出視窗的時候,往往需要在新的彈出視窗被建立出來之前,要檢查是否已經有視窗存在。如果存在,則先移除已經存在的例項,然後再建立新的例項。這樣就保證了乙個類只有乙個例項存在。思路 主要就是在類中設定乙個指向自身的靜態屬性。package private function show void...

servlet是只有乙個例項嗎

是的,乙個servlet只有乙個例項。在伺服器啟動後,當servlet第一次被訪問時例項化,以後訪問時都只呼叫service方法提供服務,這樣效率高,節約資源,不同用的的請求和狀態資訊都是儲存在公共servletcontext中,伺服器通過標識去區分,所以沒有必要給每個不同的請求都例項化乙個serv...

只有乙個父親

那天大家一起到國貿大廈喝酒,因為厭倦了席間不斷有人接 大家約定 將手機設定到振動上,能不接的 盡量不接。相接也可以,喝了一杯酒在接。席間不斷有 打進來,但大家都沒有接。再一次手機振動的時候,手機的主人忽然說 我喝一杯酒,這個 我必須接 說完,他喝了一杯酒,開始接那個 他一開口就說 爸,是我 原來打 ...