華為C++培訓(xùn)教程_第1頁(yè)
華為C++培訓(xùn)教程_第2頁(yè)
華為C++培訓(xùn)教程_第3頁(yè)
已閱讀5頁(yè),還剩7頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、附件三:教材模板說(shuō)明:一、為便于保存和管理,各類培訓(xùn)教材均采用合訂本。二、教材結(jié)構(gòu): 各類培訓(xùn)教材由教材封面、前言、課程目錄、單門(mén)課程教材和封底五部分構(gòu)成。三、教材封面:1、封面顏色:教材封面為彩色,工作基本常識(shí)教材為深藍(lán)色,技術(shù)基礎(chǔ)知識(shí)教材 為草綠色,管理基礎(chǔ)知識(shí)教材為淺藍(lán)色,營(yíng)銷基礎(chǔ)知識(shí)教材為墨綠色。2、教材名稱:采用“工作基本常識(shí)”“技術(shù)基礎(chǔ)知識(shí)”“管理基礎(chǔ)知識(shí)”“營(yíng)銷 基礎(chǔ)知識(shí)”,字體為隸書(shū),黑體, 60號(hào)。3、其他標(biāo)識(shí):?jiǎn)T工培訓(xùn)中心編輯采用宋體、黑體、三號(hào),位于教材名稱下面;華 為技術(shù)有限公司采用宋體、 黑體、小二,位于底端; 華為標(biāo)識(shí)位于華為技術(shù)有限公 司和員工培訓(xùn)中心編輯之間;右

2、上角為保密標(biāo)識(shí),楷體,黑體,四號(hào)。四、教材封底:教材封底包括教材名稱、 華為技術(shù)有限公司員工培訓(xùn)中心和時(shí)間、 版本號(hào), 位于頁(yè) 面的右下角。五、前言:教材前言為各類培訓(xùn)的目的、課程門(mén)類、特點(diǎn)、主要內(nèi)容的簡(jiǎn)介。六、課程目錄:為各門(mén)課程排列順序的目錄,統(tǒng)一編排頁(yè)碼,便于學(xué)員查找。七、單門(mén)課程教材: 各單門(mén)課程教材由課程封面、章節(jié)目錄、章節(jié)內(nèi)容、學(xué)習(xí)要求、思考題、參考資料 和相關(guān)網(wǎng)站組成。1、課程封面:課程封面為彩色,課程名稱為隸書(shū)、 60號(hào)、黑體、黑色,左上角為課程編碼。2、章節(jié)目錄:為宋體、小四、黑色3、章節(jié)內(nèi)容:(1)標(biāo)題:章節(jié)目分別以“第一章、 第二章、第三章”“1.1 、1.2 、1.3

3、”和“(1)(2)(3)”來(lái)表示。章為宋體、小二、黑體,節(jié)為宋體、四號(hào)、黑體,目為宋體、 小四、黑體。(2)文字:每四個(gè)小時(shí)的培訓(xùn)課程, 字?jǐn)?shù)控制在 10000 20000字之間。教材文 字一般為宋體、小四、黑色,行間距為一行半。(3)內(nèi)容:章節(jié)內(nèi)容要有完整的理論體系,不能成為授課膠片的翻版。4、學(xué)習(xí)要求:每章標(biāo)題下面為本章的學(xué)習(xí)要求,以明確本章要掌握的要點(diǎn)。文字為楷體、小四。5、思考題:每章最后要有思考題,以便幫助學(xué)員復(fù)習(xí)、思考。6、參考資料和相關(guān)網(wǎng)站:有參考資料和相關(guān)網(wǎng)站的要附在課程后面,以便幫助學(xué)員查閱。內(nèi)部資料,注意保密C+中級(jí)培訓(xùn)教員工培訓(xùn)中心編輯2005年 6月 V1.0華為技術(shù)華

4、為技術(shù)有限公司C+ 語(yǔ)言中級(jí)教材講授C+語(yǔ)言的運(yùn)用技術(shù),包括:類、對(duì)象之間 的關(guān)系、對(duì)象的存儲(chǔ)與布局、運(yùn)算符重載、智能指針、仿函數(shù)、泛型編程, C+模式設(shè)計(jì)基本思想。NE002009cV1.0業(yè)務(wù)與軟件C+語(yǔ)言項(xiàng)目第一章類、接口 71.1 H an dle-Body 與接口、抽象接口 71.2 多繼承、與菱形缺陷、this跳轉(zhuǎn)等131.3 C+ 多態(tài)的兩種多態(tài)形式和區(qū)別 18第二章 重載 182.1 函數(shù)重載 192.2 運(yùn)算符重載 20第三章 模板 293.1 模塊函數(shù) 293.2 模塊類 313.3 STL標(biāo)準(zhǔn)模板庫(kù) 34附錄:參考資料 39前言我們?cè)?C+ 基礎(chǔ)課程中已經(jīng)了解了 C+ 的

5、一些基本概念,知道了什么是類什么是對(duì)象。 也了解了繼承、 封裝、多態(tài)等 C+ 面向?qū)ο蟮幕咎卣鳎?本課程主要是更進(jìn)一步探討一下 C+ 一些基本模型的應(yīng)用,加深對(duì)概念的理解,由于課程時(shí)間有限, C+ ,模型和內(nèi)容又如此之 多,對(duì)任何一個(gè)模型都無(wú)法深入進(jìn)去,所以只能泛泛而談。學(xué)習(xí)要求:1、了解類的繼承、封裝等概念之間的關(guān)系2、了解什么是接口,什么是虛函數(shù),它有什么樣的特點(diǎn)。學(xué)會(huì)使用接口編程的思想本章節(jié)主要介紹C+中的類、接口。類,包涵了一組數(shù)據(jù)和一組基于數(shù)據(jù)上的一組方法。它描述了一個(gè)對(duì)象的屬性、狀態(tài)和行為;接口,它只是描述了一 個(gè)對(duì)象的簡(jiǎn)單的行為。有關(guān)類的基本概念:Class namesClas

6、s membersMember FunctionsStatic Member FunctionsUnionsC+ Bit FieldsNested Class DeclarationsType Names in Class ScopeMultiple Base ClassesVirtual FunctionsAbstract ClassesControlling Access to Class Membersprivate Membersprotected Memberspublic MembersAccess Specifiers for Base Classe,s priavte,publ

7、ic 、 protectedFriendsConstructorsDestructorsConversion Functionsthe new operator and the delete operatorCopying Constructor FunctionsInterface1.1 Handle-Body 與接口、抽象接口在C+中封裝的概念是把一個(gè)對(duì)象的外觀接口同實(shí)際工作方式(實(shí)現(xiàn))分離 開(kāi)來(lái),但是C+的封裝是不完全的,編譯器必須知道一個(gè)對(duì)象的所有部分的聲明, 以便創(chuàng)建和管理它。我們可以想象一種只需聲明一個(gè)對(duì)象的公共接口部分的編程 語(yǔ)言,而將私有的實(shí)現(xiàn)部分隱藏起來(lái)。 C + +在編譯期

8、間要盡可能多地做靜態(tài)類 型檢查。這意味著盡早捕獲錯(cuò)誤, 也意味著程序具有更高的效率。 然而這對(duì)私有 的實(shí)現(xiàn)部分來(lái)說(shuō)帶來(lái)兩個(gè)影響: 一是即使程序員不能輕易地訪問(wèn)實(shí)現(xiàn)部分, 但他 可以看到它;二是造成一些不必要的重復(fù)編譯。然而C+并沒(méi)有將這個(gè)原則應(yīng)用到二進(jìn)制層次上,這是因?yàn)镃+的類既是描述了一個(gè)接口同時(shí)也描述了實(shí)現(xiàn)的過(guò)程 ,示例如下:class CMyStringprivate:const int m_cch;char *m_psz;public:CMyString(const char *psz);CMyString();int Length() const;int Index(const ch

9、ar *psz) const; CMyStirng對(duì)外過(guò)多的暴露了內(nèi)存布局實(shí)現(xiàn)的細(xì)節(jié),這些信息過(guò)度的依賴于這些 成員變量的大小和順序, 從而導(dǎo)致了客戶過(guò)度依賴于可執(zhí)行代碼之間的二進(jìn)制耦 合關(guān)系,這樣的接口不利于跨語(yǔ)言跨平臺(tái)的軟件開(kāi)發(fā)和移植。1.1.1 Handle-Body 模式解決這個(gè)問(wèn)題的技術(shù)有時(shí)叫句柄類 ( handle classes )或叫“ Cheshi re Cat” 1 。有關(guān)實(shí)現(xiàn)的任何東西都消失了,只剩一個(gè)單一的指針“ m_pThis ”。該指 針指向一個(gè)結(jié)構(gòu), 該結(jié)構(gòu)的定義與其所有的成員函數(shù)的定義一樣出現(xiàn)在實(shí)現(xiàn)文件 中。這樣,只要接口部分不改變,頭文件就不需變動(dòng)。而實(shí)現(xiàn)部分

10、可以按需要任 意更動(dòng),完成后只要對(duì)實(shí)現(xiàn)文件進(jìn)行重新編譯,然后再連接到華為項(xiàng)目中。這里有這項(xiàng)技術(shù)的簡(jiǎn)單例子。 頭文件中只包含公共的接口和一個(gè)簡(jiǎn)單的沒(méi)有 完全指定的類指針。class CMyStringHandleprivate:classCMyString ;CMyString *m_pThis;public:CMyStringHandle (const char *psz); CMyStringHandle ();int Length() const;int Index(const char *psz) const;;CMyStringHandle: CMyStringHandle(const

11、 char *psz):m_pThis(new CMyString(psz);CMyStringHandle: CMyStringHandle()delete m_pThis;int CMyStringHandle:Length()return m_pThis-Length();int CMyStringHandle:Index(const char *psz)return m_pThis-Index(psz); 這是所有客戶程序員都能看到的。這行class CMyString ; 是一個(gè)沒(méi)有完全指定的類型說(shuō)明或類聲明 (一個(gè)類的定義包含類的主體) 。它告 訴編譯器, cheshire 是一個(gè)

12、結(jié)構(gòu)的名字,但沒(méi)有提供有關(guān)該結(jié)構(gòu)的任何東西。 這對(duì)產(chǎn)生一個(gè)指向結(jié)構(gòu)的指針來(lái)說(shuō)已經(jīng)足夠了。 但我們?cè)谔峁┮粋€(gè)結(jié)構(gòu)的主體部 分之前不能創(chuàng)建一個(gè)對(duì)象。 在這種技術(shù)里, 包含具體實(shí)現(xiàn)的結(jié)構(gòu)主體被隱藏在實(shí) 現(xiàn)文件中。在設(shè)計(jì)模式中,這就叫做 Handle-Body 模式, Handle-Body 只含有一個(gè)實(shí) 體指針,服務(wù)的數(shù)據(jù)成員永遠(yuǎn)被封閉在服務(wù)系統(tǒng)中。Han dle-Body模式如下:cassHandlem_pThis丿class圖1 Handle-Body模式(句柄類做為接口)Han dle-Body的布局結(jié)構(gòu)永遠(yuǎn)不會(huì)隨著實(shí)現(xiàn)類數(shù)據(jù)成員的加入或者刪除或者修改 而導(dǎo)致Handle-Body的修改,即H

13、andle-Body協(xié)議不依賴于C+實(shí)現(xiàn)類的任何細(xì)節(jié) 這就有效的對(duì)用戶的編譯器隱藏了這些斜街,用戶在使用對(duì)這項(xiàng)技術(shù)時(shí)候,Handle-Body接口成了它唯一的入口。然而Handle-Body模式也有自己的弱點(diǎn):1、接口類必須把每一個(gè)方法調(diào)用顯示的傳遞給實(shí)現(xiàn)類,這在一個(gè)只有一 個(gè)構(gòu)造和一個(gè)析構(gòu)的類來(lái)說(shuō)顯然不構(gòu)成負(fù)擔(dān),但是如果一個(gè)龐大的類 庫(kù),它有上百上千個(gè)方法時(shí)候,光是編寫(xiě)這些方法傳遞就有可能非常 冗長(zhǎng),這也增加了出錯(cuò)的可能性。2、對(duì)于關(guān)注于性能的應(yīng)用每一個(gè)方法都得有兩層的函數(shù)調(diào)用,嵌套的開(kāi) 銷也不理想3、由于句柄的存在依然存在編譯連接器兼容性問(wèn)題。接口和實(shí)現(xiàn)分離的Handle-Body。抽象接口使用了 “接口與實(shí)現(xiàn)的分離”技術(shù)的Handle-Body解決了編譯器/鏈接器 的大部分問(wèn)題,而C+面向?qū)ο缶幊讨械某橄蠼涌谕瑯邮沁\(yùn)用了“接口與實(shí)現(xiàn)分 離”的思想,而采用抽象接口對(duì)于解決這類問(wèn)題是一個(gè)極其完美的解決方案。1、抽象接口的語(yǔ)言描述:class IMyStri ngvirtual int Len gth(

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論