版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、VC,掀起你的蓋頭來——談VC對象模型(美)簡?格雷程化譯譯者前言一個C程序員,想要進(jìn)一步提升技術(shù)水平的話,應(yīng)該多了解一些語言的語意細(xì)節(jié)。對于使用VC的程序員來說,還應(yīng)該了解一些VC對于C的詮釋。InsidetheCObjectModel雖然是一本好書,然而,書的篇幅多一些,又和具體的VC關(guān)系小一些。因此,從篇幅和內(nèi)容來看,譯者認(rèn)為本文是深入理解C對象模型比較好的一個出發(fā)點。這篇文章以前看到時就覺得很好,舊文重讀,感覺理解得更多一些了,
2、于是產(chǎn)生了翻譯出來,與大家共享的想法。雖然文章不長,但時間有限,又若干次在翻譯時打盹睡著,拖拖拉拉用了小一個月。一方面因本人水平所限,另一方面因翻譯時經(jīng)常打盹,錯誤之處恐怕不少,歡迎大家批評指正。1前言了解你所使用的編程語言究竟是如何實現(xiàn)的,對于C程序員可能特別有意義。首先,它可以去除我們對于所使用語言的神秘感,使我們不至于對于編譯器干的活感到完全不可思議;尤其重要的是,它使我們在Debug和使用語言高級特性的時候,有更多的把握。當(dāng)需要
3、提高代碼效率的時候,這些知識也能夠很好地幫助我們。本文著重回答這樣一些問題:?類如何布局??成員變量如何訪問??成員函數(shù)如何訪問??所謂的“調(diào)整塊”(adjusterthunk)是怎么回事??使用如下機(jī)制時,開銷如何:?單繼承、多重繼承、虛繼承?虛函數(shù)調(diào)用?強(qiáng)制轉(zhuǎn)換到基類,或者強(qiáng)制轉(zhuǎn)換到虛基類?異常處理首先,我們順次考察C兼容的結(jié)構(gòu)(struct)的布局,單繼承,多重繼承,以及虛繼承;接著,我們講成員變量和成員函數(shù)的訪問,當(dāng)然,這里面包
4、含虛函數(shù)的情況;再接下來,我們考察構(gòu)造函數(shù),析構(gòu)函數(shù),以及特殊的賦值操作符成員函數(shù)是如何工作的,數(shù)組是如何動態(tài)構(gòu)造和銷毀的;最后,簡單地介紹對異常處理的支持。對每個語言特性,我們將簡要介紹該特性背后的動機(jī),該特性自身的語意(當(dāng)然,本public:intbm1protected:intbm2private:intbm3staticintbsmvoidbf()staticvoidbsf()typedefvoidbpvstructN譯者注:B
5、中,為何staticintbsm不占用內(nèi)存空間?因為它是靜態(tài)成員,該數(shù)據(jù)存放在程序的數(shù)據(jù)段中,不在類實例中。2.3單繼承C提供繼承的目的是在不同的類型之間提取共性。比如,科學(xué)家對物種進(jìn)行分類,從而有種、屬、綱等說法。有了這種層次結(jié)構(gòu),我們才可能將某些具備特定性質(zhì)的東西歸入到最合適的分類層次上,如“懷孩子的是哺乳動物”。由于這些屬性可以被子類繼承,所以,我們只要知道“鯨魚、人”是哺乳動物,就可以方便地指出“鯨魚、人都可以懷孩子”。那些特例
6、,如鴨嘴獸(生蛋的哺乳動物),則要求我們對缺省的屬性或行為進(jìn)行覆蓋。C中的繼承語法很簡單,在子類后加上“:base”就可以了。下面的D繼承自基類C。structCintc1voidcf()structD:Cintd1voiddf()既然派生類要保留基類的所有屬性和行為,自然地,每個派生類的實例都包含了一份完整的基類實例數(shù)據(jù)。在D中,并不是說基類C的數(shù)據(jù)一定要放在D的數(shù)據(jù)之前,只不過這樣放的話,能夠保證D中的C對象地址,恰好是D對象地址的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 談vc++對象模型
- [vc++畢設(shè)]vc++車輛調(diào)度
- 面向?qū)ο蟪绦蛟O(shè)計與vc++實踐
- [vc++畢設(shè)]vc++庫存管理
- [vc++畢設(shè)]vc++象棋程序+論文
- [vc++畢設(shè)]vc++醫(yī)藥管理系統(tǒng)+論文
- [vc++畢設(shè)]vc++航空檢票系統(tǒng)+論文
- [vc++畢設(shè)]vc++開發(fā)gis項目程序+論文
- vc++串口編程
- vc++內(nèi)嵌匯編
- [vc++畢設(shè)]vc++圖書館管理系統(tǒng)
- 外文翻譯 vc++簡介
- vc++面向?qū)ο笳n程設(shè)計報告---局域網(wǎng)聊天程序
- [vc++畢設(shè)]vc++網(wǎng)上尋呼qicq源代碼(附帶論文)
- [vc++畢設(shè)]vc++學(xué)生成績統(tǒng)計分析系統(tǒng)
- [vc++畢設(shè)]vc++可視化圖像處理系統(tǒng)+論文
- [vc++畢設(shè)]vc++運動會成績管理系統(tǒng)(源碼+論文)
- [vc++畢設(shè)]vc++ 003指紋識別系統(tǒng)
- vc++程序設(shè)計
- vc++基礎(chǔ)教程
評論
0/150
提交評論