版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、C+編程,2,課程目標,學習c+基本知識和技能 要求學員能正確的理解和運用c+基本知識和技能,3,課程分為如下幾塊,C+單個類的設計 C+類的繼承 容器和算法 IO流 C+的異常處理 Qt Qt掃雷項目,4,第一部分 c+類的設計,預習檢測 什么是引用? 引用必需要初始化嗎? 定義類的友元函數(shù)的關鍵字是什么? C+的顯式轉換有哪幾種定義? 復制控制包含那幾個函數(shù)?,5,第一部分 c+概述,C+是由AT /開辟一個存放數(shù)組的存儲空間,返回一個指向該存儲空間的地址. 2)int *a = new int(5); / 作用同上,但是同時將整數(shù)賦值為5 2.開辟數(shù)組空間 一維: int *a = ne
2、w int100;/開辟一個大小為100的整型數(shù)組空間 二維: int(*a)6=new int56; Delete的作用: 調(diào)用對象的析構函數(shù), 在釋放對象 1. int *a = new int; delete a; /釋放單個int的空間 2.int *a = new int5; delete a; /釋放int數(shù)組空間,9,第一部分 c+類的設計,第四節(jié) 類型轉換 隱式類型的轉換 int a = 1; double b = 0.1 double c = a+b; 指針轉換: int a3; int * b = a; 轉換為bool 類型 算術值和指針值都可以轉換為 bool 類型。 I
3、nt * a = 0; If(a) cout “a is true”; else cout “a is false”;,10,第一部分 c+類的設計,C+的顯式轉換 static_cast 程序員顯式的強制類型轉換 int a = 10; double b = static_cast(a); double c = (double)a; reinterpret_cast:為操作數(shù)的位模式提供較低層次的重新解釋 int b = 1; int a = (int) / C-language-style cast notation,11,第一部分 c+類的設計,第五節(jié) 友元及static 友元機制: 允
4、許一個類將對其非公有成員的訪問權授予指定的函數(shù)或類 優(yōu)點: 在實現(xiàn)類之間數(shù)據(jù)共享時,減少系統(tǒng)開銷,提高效率; 缺點:友元函數(shù)破環(huán)了封裝機制,盡量不使用友元函數(shù). 因為友元函數(shù)是類外的函數(shù),所以它的聲明可以放在類的私有段或公有段且沒有區(qū)別。可以直接調(diào)用友元函數(shù),不需要通過對象或指針. 成員函數(shù)有this指針,而友元函數(shù)沒有this指針。 友元函數(shù)是不能被繼承的,就像父親的朋友未必是兒子的朋友 static函數(shù)和static數(shù)據(jù)成員 非static成員存在于類的對象中, static數(shù)據(jù)成員是獨立于類的對象的, 它是于類相關聯(lián)的. 通過作用域操作符:直接調(diào)用static成員. static數(shù)據(jù)成員
5、必須在類定義體外部定義一次. 靜態(tài)成員函數(shù)訪問類成員數(shù)據(jù)和類static數(shù)據(jù)成員的區(qū)別。,12,第一部分 c+類的設計,第六節(jié) 復制控制 復制控制: 復制構造函數(shù), 析構函數(shù), 賦值操作符. 析構函數(shù)在撤銷類對象時自動調(diào)用 class Person public: Person(const string ,13,第一部分 c+類的設計,第七節(jié) 操作符重載 一般將算術和關系操作符定義非成員函數(shù),而將賦值操作符定義為成員操作符。定義為非成員函數(shù)時,通常必須將它們設置為所操作類的友元 operator+(); operator+=(); operator=(); operator!=(); 重載賦值
6、運算符時應返回一個對象。因為賦值運算符的左邊是一個對象,所以重載賦值運算符應返回一個類的對象,為了避免不必要的開銷,最好是返回一個類的對象的引用。 重載賦值運算符時必須是類的成員函數(shù)。 復數(shù)類演示代碼 輸入和輸出操作符 ostream virtual void letOff() cout bio lef off! endl; virtual void move() cout bio move! endl; ; class Animal: public Biology public: void eat() cout animal eat! endl; void letOff() cout ani
7、mal lef off! endl; ;,19,第二部分 c+類的繼承,int main() Animal tiger; tiger.eat(); /函數(shù)的覆蓋 tiger.letOff(); /函數(shù)的重定義 tiger.move(); /函數(shù)的繼承 Biology * bio = 觸發(fā)動態(tài)綁定的兩個條件: 第一,只有指定為虛函數(shù)的成員函數(shù)才能進行動態(tài)綁定 第二,必須通過基類類型的引用或指針進行函數(shù)調(diào)用。 多態(tài)有兩種實現(xiàn)方式是: 一是同一個類中函數(shù)的重載; 二是子類改寫父類中方法的內(nèi)部實現(xiàn)。,20,第二部分 c+類的繼承,派生類到基類的轉換 如果有一個派生類型的對象,則可以使用它的地址對基類類
8、型的指針進行賦值或初始化。 基類到派生類的轉換: 從基類到派生類的自動轉換是不存在的。 class A ; class B: public A ; int main() A * pa = new B; /B * b = pa;/報錯 B * b = static_cast(pa); return 0; ,21,第二部分 c+類的繼承,第二節(jié)派生類構造函數(shù) 派生類的構造函數(shù)受繼承關系的影響,每個派生類構造函數(shù)除了初始化自己的數(shù)據(jù)成員之外,還要初始化基類。子類的構造函數(shù)定義中用以下格式調(diào)用父類的構造函數(shù): 子類名:構造函數(shù)名(參數(shù)表):父類名(參數(shù)表) class Base public: Bas
9、e(int i =0 ): m_i(i) protected: int m_i; ; class Derive : public Base public: Derive(int i =0, const string ,22,第二部分 c+類的繼承,復制控制和繼承 class Person public: Person(const string ,23,第二部分 c+類的繼承,class Student: public Person public: Student(const string ,24,第二部分 c+類的繼承,第三節(jié) 派生類的撤銷 對象的撤銷順序與構造順序相反:首先運行派生析構函數(shù),然后按繼承層次依次向上調(diào)用各基類析構函數(shù)。 基類的析構函數(shù)必須定義為虛函數(shù),25,第二部分 c+類的繼承,本章總結
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年彈性設計在綠色施工中的應用
- 市政配套專題匯報
- 2026年電氣故障處理與應急預案
- 2026春招:西藏航空真題及答案
- 醫(yī)療信息化的禮儀與操作規(guī)范
- 2026年廣西生態(tài)工程職業(yè)技術學院高職單招職業(yè)適應性測試備考試題有答案解析
- 2026年貴州農(nóng)業(yè)職業(yè)學院單招綜合素質(zhì)筆試模擬試題帶答案解析
- 個性化醫(yī)療與基因治療技術
- 2026年貴州工業(yè)職業(yè)技術學院單招職業(yè)技能筆試備考題庫帶答案解析
- 護理安全管理與應急預案制定與實施策略
- 全球AI應用平臺市場全景圖與趨勢洞察報告
- 2026.05.01施行的中華人民共和國漁業(yè)法(2025修訂)課件
- 維持性血液透析患者管理
- 2025年大學大四(臨床診斷學)癥狀鑒別診斷試題及答案
- 2025年消控員初級證試題及答案
- 人力資源調(diào)研報告
- 幼兒園食堂試卷(含答案)
- 2026年北京公務員考試試題及答案
- 《房屋市政工程第三方安全巡查服務標準》
- 兒童肥胖的長期管理
- 國開2025年《行政領導學》形考作業(yè)1-4答案
評論
0/150
提交評論