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