華為-C中級培訓(xùn)講義.ppt

華為-C中級培訓(xùn)講義.ppt

ID:51256578

大?。?03.50 KB

頁數(shù):66頁

時間:2020-03-20

華為-C中級培訓(xùn)講義.ppt_第1頁
華為-C中級培訓(xùn)講義.ppt_第2頁
華為-C中級培訓(xùn)講義.ppt_第3頁
華為-C中級培訓(xùn)講義.ppt_第4頁
華為-C中級培訓(xùn)講義.ppt_第5頁
資源描述:

《華為-C中級培訓(xùn)講義.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、C++中級培訓(xùn)員工培訓(xùn)中心2005年7月1日蔡利元課程內(nèi)容第一章:類第二章:接口第三章:運算符重載第四章:模板第一章:類基本概念類的基本特性類的應(yīng)用的特例基本概念namespaceClassnamesClassmembersMemberFunctionsStaticMemberFunctionsUnionsC++BitFieldsNestedClassDeclarationsTypeNamesinClassScopeMultipleBaseClassesVirtualFunctionsAbstractClassesControllingAccesstoClassMembers

2、privateMembersprotectedMemberspublicMembersAccessSpecifiersforBaseClasses,priavte,public、protectedFriendsConstructorsDestructorsConversionFunctionsthenewoperatorandthedeleteoperatorCopyingConstructorFunctionsInterface類的基本特性構(gòu)造函數(shù)與拷貝構(gòu)造函數(shù)靜態(tài)成員與友元組合與繼承構(gòu)造函數(shù)與拷貝構(gòu)造函數(shù)C++規(guī)定與類同名的函數(shù)就是拷貝構(gòu)造函數(shù)默認(rèn)拷貝構(gòu)造函數(shù)在類定義中如

3、果沒有提供自己的拷貝構(gòu)造函數(shù),則C++提供一個默認(rèn)的構(gòu)造函數(shù),其拷貝策略是逐個成員依次拷貝。深拷貝和淺拷貝默認(rèn)拷貝構(gòu)造函數(shù)均是淺拷貝但是一個類可能擁有其它資源,如其構(gòu)造函數(shù)分配了一個堆內(nèi)存,析構(gòu)函數(shù)釋放了這個內(nèi)存,則此時就需要進行深拷貝了深拷貝不能依賴編譯器實現(xiàn)靜態(tài)成員與友元靜態(tài)成員使用static申明,在內(nèi)存中永遠(yuǎn)只有一份實例是類的對象所共有的靜態(tài)成員變量可以被成員函數(shù)訪問,但靜態(tài)成員函數(shù)只能訪問靜態(tài)成員變量友元是為了一個普通函數(shù)直接訪問一個類的保護甚至是私有成員的機制組合與繼承C++最重要的性能之一是代碼重用簡單地創(chuàng)建一個包含已存在的類對象的新類,這稱為組合,has-a關(guān)

4、系創(chuàng)建一個新類作為一個已存在類的類型,采取這個已存在類的形式,對它增加代碼,但不修改它。稱為繼承,具有is-a關(guān)系,繼承具有單一繼承和多繼承類的應(yīng)用的特例繼承中的向上映射與切片問題多繼承中發(fā)生的菱形缺陷this跳轉(zhuǎn)繼承中的向上映射與切片問題如果有classB:publicA;Bb;Aa=b;這就是切片現(xiàn)象而B*pb=newB;A*pa=pb;則不會發(fā)生切片,因為這只是指針的賦值而不涉及到切片現(xiàn)象多繼承中發(fā)生的菱形缺陷菱形缺陷導(dǎo)致的原因:發(fā)生了菱形繼承,如右圖兩個缺陷:子對象重疊向上映射的二義性解決辦法:修改多繼承關(guān)系為單一繼承關(guān)系或者是組合關(guān)系進行虛繼承this跳轉(zhuǎn)如右圖繼承

5、關(guān)系對于一個已經(jīng)實例化B類的對象bObject,永遠(yuǎn)有(B*)&bObject==(A*)&bObject成立但是在多繼承的世界內(nèi),上面的等式就不能恒成立,對象的同一性受到了挑戰(zhàn)。特別的是,在多繼承世界內(nèi)如果左下的菱形關(guān)系存在情況下,如果對于已經(jīng)實例化B類的對象bObject;(Base*)(A1*)&bObject!=(Base*)(A2*)&bObject成立,當(dāng)這種事情發(fā)生的時候我們就只能特殊處理了。這種情況在COM應(yīng)用中處處都會發(fā)生。第二章:接口基本知識基本特性接口應(yīng)用的特例應(yīng)用舉例基本概念ClassVirtualfunctionsPurevirtualfunctio

6、nsAbstractclassStruct&Interface基本特性虛函數(shù)純虛函數(shù)抽象類接口虛函數(shù)語法特性虛析構(gòu)函數(shù)語法在普通成員函數(shù)前面加virtual關(guān)鍵字一個函數(shù)在基類申明一個virtual,那么在所有的派生類都是是virtual的一個函數(shù)在基類為普通函數(shù),在派生類定義為virtual的函數(shù)稱為越位特性實施晚期綁定(即運行時刻綁定),實施多態(tài)的一種方法具有虛函數(shù)類的虛函數(shù)表的布局如下:classvtprclass::m1class::m2純虛函數(shù)語法:成員函數(shù)前面加virtual關(guān)鍵在,在函數(shù)申明的”)”后標(biāo)注“=0”關(guān)鍵字在申明純虛函數(shù)類中不能實現(xiàn)該函數(shù)抽象類具有純

7、虛函數(shù)的類就是抽象類抽象類不能被實例化,所以抽象類只能以指針方式被應(yīng)用抽象類可以防止切片的發(fā)生抽象類不產(chǎn)生虛表。用戶接口接口的演化與接口的必要性接口應(yīng)用特例接口應(yīng)用示例接口的演化與接口的必要性Handle-Body模式抽象接口classHandlem_pThisclassclassvtprclass::m1class::m2接口應(yīng)用特例多重接口與方法名沖突問題(Siamesetwins)提出問題:假設(shè)汽車最大速度的接口為ICar,潛艇最大速度的接口為IBoat,有一個兩棲類的交通工具它可以奔跑在馬路上,

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。