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

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

系統
前綴“R”意為“資源(Resource)”,R類通常是指向一個外部資源的句柄,例如一個文件服務會話。
前綴“R”意為“資源(Resource)”,R類通常是指向一個外部資源的句柄,例如一個文件服務會話。和C類不同的是,這里沒有相應的 RBase類,所以一個典型的R類通常有一個構造函數來設定它的資源句柄為零,并顯示當前資源為空。不要企圖在構造函數中初始化資源句柄,因為這樣可能會失敗,而構造函數中是禁止產生leave的(參見第4章)。

  可以使用R類提供的函數獲取R類對象提供的資源,諸如Open(),Create() 或Initialize()等函數來分配資源和設定句柄成員變量,如果調用失敗則會返回一個錯誤碼或導致leave。R類同樣提供相應的Close()或 Reset()函數來釋放資源和重置句柄值。在同一對象上多次調用此類函數是安全的。盡管理論上清理函數可以任意命名,但絕大多數情況下都命名為 Close()。

  在使用R類時一個較常見的失誤是忘記調用Close()或以為R類對象可以在析構函數中釋放自己的資源。但這會導致嚴重的內存泄露。

  R類通常占用空間較小,通常除了資源句柄以外并不包含其它數據成員。R類極少有析構函數——因為清除工作通常在Close()函數中完成。

  R 類可以以一個類成員或自動變量的方式在stack上存在,有些時候也可以在heap上分配。你必須確保R類在leave發生時資源可以被有效釋放,通常使用清潔棧來處理這類情況,詳細描述參見第3章。記住,如果基于heap分配一個R類自動變量,你必須在使用后確信將變量所使用資源和內存釋放完畢,通常有兩種push調用完成這樣的功能:CleanupClosePushL()(或者同類函數),用以確保資源的釋放,也可調用標準的 CleanupStack::PushL(TAny*)函數,這個函數只是在heap單元上簡單的調用User::Free()。

  通常R類的成員數據要簡單的多,可以直接進行逐位復制,所以你不必期待可以在R類中看到復制構造函數和賦值操作符,否則淺表復制會引起未定義行為(undefine behavior)。比如通過逐位復制方式獲得的句柄副本將會導致資源所有權的混淆。這種情況下的未定義行為多半可以歸咎于兩個副本都試圖釋放資源而導致的。在同一對象上重復調用Close()是安全的,這是因為句柄值成員在調用Close()時復位。但是如果通過指向同一資源的兩個不同的句柄對象來調用 Close()函數,這時的情況就完全不同了。如果一個句柄對象釋放了指向的資源,那么指向該資源的另一個句柄也將會隨即失效。

  如果你的類包含一個指向不可通過逐位復制進行安全共享的資源的句柄成員,則應該聲明一個復制函數來完成必要的資源復制任務。如果你希望預防對R類任何形式的復制,可以模仿C類的方式,將復制構造函數和賦值操作符聲明為private,但是不予實現。

  R類的規則要多于C類和T類,所以你可以看到更多不同“物種”的R類。在Symbian OS中R類所擁有資源類型是多種多樣的——從文件服務會話的class RFs到基于heap分配內存的class RArray。

  基本原則----R類對象必須通過調用Close()函數釋放資源

【編輯推薦】

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

2009-04-12 09:11:03

Symbian諾基亞移動OS

2009-04-12 09:13:51

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

2009-12-16 16:24:00

Ruby on Rai

2010-09-03 09:46:50

idclassCSS

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開發

2022-09-09 16:06:15

API開發者命名API

2010-09-08 16:49:05

CSSclassid

2011-04-21 13:34:25

移動操作系統份額Symbian OSiOS

2010-08-27 09:51:25

idclassCSS

2012-05-24 09:38:08

Symbian

2009-02-17 15:51:20

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

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲高清在线 | 成人毛片视频在线播放 | 亚洲草草视频 | 国产精品a久久久久 | 日韩欧美精品 | 久久99精品久久久久蜜桃tv | 国产精品久久久久久久一区二区 | 亚洲小说图片 | 久久99一区二区 | 一区二区三区免费 | 国产成人精品区一区二区不卡 | 久久骚| 一区二区av| 天堂亚洲| 欧美一级二级视频 | 久久精品91 | 久久久久国产精品 | 九九热久久免费视频 | 成人自拍视频 | 日本成人一区二区 | 国产精品精品视频一区二区三区 | 久久精品1 | 国产一区91精品张津瑜 | 国产成人免费视频网站高清观看视频 | 日韩一级 | 亚洲国产高清高潮精品美女 | 久久99精品视频 | 国产精品视频一区二区三区, | 视频一二三区 | 日本三级做a全过程在线观看 | 欧美精品在线观看 | 97久久久久久 | 欧美精品三区 | www国产成人免费观看视频,深夜成人网 | 成人网在线看 | 99亚洲国产精品 | 天天摸天天干 | 日韩免费在线视频 | 免费的av网站 | 亚洲第1页| 羞羞视频网站免费观看 |