成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Symbian OS 中的Class命名約定(C類)

系統
C前綴[1]的類皆由CBase類(定義于e32base.h)派生(直接或間接)。CBase類通過繼承確保了所有的C類都具有如下兩個特征。
C類

  C前綴[1]的類皆由CBase類(定義于e32base.h)派生(直接或間接)。CBase類通過繼承確保了所有的C類都具有如下兩個特征。

  首先,CBase有一個虛析構函數,所以C類對象都應該通過刪除CBase的指針進行銷毀。通常清潔棧就使用這一方法,在將C類對象壓入清潔棧時需要重載調用CCleanupStack::PushL(CBase* aPtr)函數。

  如果對對象調用CCleanupStack::PopAndDestroy()(或在發生leave時),對象會通過刪除CBase指針被刪除。 CBase 的虛析構函數確保了對派生類的析構函數的正序調用(由***層派生類起,逐層向上調用)。所以應當認識到,C類在這一點上有別于T類,它們通常都有一個析構函數。

  還有一點需要注意的是,如果需要將非CBase的派生類壓入清潔棧,將重載 CCleanupStack::PushL(TAny*aPtr)函數而不是CCleanupStack::PushL(CBase* aPtr)。正象上面說的那樣,當調用PopAndDestroy()或發生leave時,將會釋放對象的內存但并不會調用對象的析構函數。所以如果不直接或間接地繼承CBase類,即使你的基類有一個虛析構函數,你的類的對象也不會象你所期待

  1這里可能讓你覺得詫異,'C'表示'Class','C class'多少讓人覺得有點羅嗦,但以T類的"Type'作為參照系,'C class'是一個正確的表示方法。

  的那樣可以順利清除。

  CBase 類及其派生類的第二個特征,是當***在heap上建立對象時,將重載new操作符來對對象進行零初始化。這意味著C類對象的所有數據成員在***創建時皆為零。而不必由你親自在構造函數中顯式地進行這項工作。因為stack的分配不使用new操作符,所以零初始化也就不會在stack對象上發生作用。這間接的導致了基于heap的零初始化和基于stack的非零始化的不同行為。由于這一原因,特別就leave發生時的清潔處理而言,C類對象必須在heap上進行分配。

  顯而易見,基于heap的對象在失去使用價值后必須銷毀。C類對象通常作為另一個類的指針成員或局部指針變量使用。如果C類對象是一個成員變量,則應在C 類的所有者的析構函數中使用delete操作來銷毀。如果是一個臨時性的局部指針變量,那么必須在任何可能產生leave的代碼之前將其壓入清潔棧——否則一旦發生leave就會導致內存泄露。第3章將詳細論述這一問題。

  如果觀察一下e32base.h,你將注意到CBase聲明了一個private的復制構造函數和賦值運算符。這是一個較常用的策略,可以防止用戶意外地 C類對象進行淺表復制(shallow copy)。如果一定要對你的類進行復制操作,那么必須顯式聲明并定義一個public復制構造函數和賦值運算符,因為在基類中復制構造函數和賦值運算符被聲明為private,所以不能進行隱式調用。但是,一個深層復制(deep copy)有可能導致潛在的leave發生,而就C類的本性而言,你又決不能允許在一個構造(或析構)函數中產生leave(參見第4章)。所以如果需要為C類提供復制操作,就不要定義并實現一個公共的復制構造函數,而應加入一個允許leave的函數,例如CloneL()或CopyL(),這樣既遵守了 C類的規則同時又完成了復制操作的任務。

  因為大多數C類往往不足以直接提供逐位復制,所以***避免隱式復制,這是派生于CBase的另外一個優點。CBase類中的復制構造函數和賦值操作符的private聲明意味著你可以不必在每個C類中都親自聲明它們,以防止這種具有潛在危險的淺表復制。

  基本原則----C類對象必須基于heap分配

【編輯推薦】

  1. Symbian每6個月發布一款新開源操作系統
  2. 微軟建WindowsMarketplace 完善智能機平臺
  3. 大力模仿Android 傳微軟WM6.5可裝插件
責任編輯:龐桂玉 來源: it168
相關推薦

2009-04-12 09:13:51

Symbian諾基亞移動OS

2009-04-12 09:12:34

Symbian諾基亞移動OS

2009-04-12 09:08:32

Symbian諾基亞移動OS

2023-08-07 08:52:53

Vue組件Props 命名

2010-09-14 15:24:49

CSSIDClass

2024-04-11 10:20:57

JavaScript前端Web

2010-09-03 09:46:50

idclassCSS

2009-12-16 16:24:00

Ruby on Rai

2022-02-23 09:03:29

JavaScript開發命名約定

2009-08-19 15:24:30

.NET命名規范

2020-11-18 09:44:49

Java命名約定

2010-03-05 11:53:20

Python命名約定

2009-11-10 15:36:24

VB.NET命名約定

2010-07-22 09:25:21

Symbian開發

2010-09-08 16:49:05

CSSclassid

2022-09-09 16:06:15

API開發者命名API

2011-04-21 13:34:25

移動操作系統份額Symbian OSiOS

2010-08-27 09:51:25

idclassCSS

2010-09-07 17:27:54

Carbide.c++Symbian移動開發

2009-02-17 15:51:20

SymbianARM對稱式多處理移動平臺技
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 精品一区二区三区在线观看 | 午夜在线视频 | 人碰人操 | 在线视频中文字幕 | 国产中文字幕亚洲 | 国产一区二区三区免费观看在线 | 欧美日韩在线观看视频网站 | 欧美色专区 | 亚洲国产一区视频 | 国产在线精品一区二区三区 | 天天操人人干 | 人人九九精 | 草逼网站| 久草新在线 | 欧美日韩久久精品 | 午夜精品久久久久久久久久久久 | 农村妇女毛片精品久久久 | 亚洲一区二区在线视频 | 福利一区在线观看 | 成人精品国产一区二区4080 | 亚洲精品视频在线播放 | 日日噜噜噜夜夜爽爽狠狠视频97 | 日本久久精 | 亚洲午夜av久久乱码 | 国产91精品久久久久久久网曝门 | 成人一区二区三区在线观看 | 精品国产一区二区三区免费 | 91影片| 成人性生交大片免费看中文带字幕 | 国产精品久久久久久久久久不蜜臀 | 国产成人精品a视频一区www | 精品国产免费人成在线观看 | 国产欧美视频一区二区三区 | 日韩1区2区| av黄色在线观看 | 免费在线成人 | 亚洲国产精品99久久久久久久久 | 亚洲影音先锋 | 亚洲第一在线 | 亚洲天堂免费 | 国产精品久久久久久吹潮日韩动画 |