freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計教程c語言描述下ppt-wenkub

2022-10-31 05:35:58 本頁面
 

【正文】 個派生類,則這個過程遞歸進行。 例如: 第 4章 繼承機制 虛基類 class Baseclass1:visual public Base { public: void seta(int x){val=x。 二義性檢查是在訪問權(quán)限檢查之前進行的 , 因此 , 成員的訪問權(quán)限是不能解決兩義性問題的 。 【例 】下面程序訪問了共同基類的成員,分析程序中出現(xiàn)的二義性。 第 4章 繼承機制 二義性和支配規(guī)則 ?通過在派生類 Derivedclass中定義一個新函數(shù) show( ) 例 如: void Derivedclass::show( ) { Baseclass1::show( )。 【例 】下面程序調(diào)用了不同基類的相同成員,分析程序中出現(xiàn)的二義性。 出錯。} void display()。在類外部,派生類的對象無法訪問基類的所有成員。 ?派生類的對象的地址可以賦給指向基類的指針 例如: DerivedClass d。 b=d。 公有派生時,可以通過定義派生類自己的成員函數(shù)來訪問派生類繼承來的公有和保護成員,但不能訪問繼承來的私有成員。 返回首頁 第 4章 繼承機制 派生類的訪問控制 返回首頁 公有繼承 私有繼承 保護繼承 第 4章 繼承機制 公有繼承 類的派生可以分成公有繼承、私有繼承和保護繼承 3種。 在 C++中,單一繼承的一般形式為: 第 4章 繼承機制 單繼承 class〈派生類名〉:〈繼承方式〉〈基類名〉 { public: 公有數(shù)據(jù)和函數(shù) protected: 保護數(shù)據(jù)和函數(shù) private: 私有數(shù)據(jù)和函數(shù) }。 從多個基類派生類的繼承被稱為多繼承。 派生新類的類稱為基類,又稱父類,而將派生出來的新類稱為派生類,又稱子類。第 4章 繼承機制 面向?qū)ο蟪绦蛟O(shè)計教程( C++語言描述)下 第 4章 繼承機制 第 4章 繼承機制 基類和派生類 單繼承 派生類的訪問控制 多繼承 繼承機制下的構(gòu)造函數(shù)與析構(gòu)函數(shù) 應(yīng)用實例 第 4章 繼承機制 基類和派生類 返回首頁 繼承和派生的基本概念 繼承的種類 第 4章 繼承機制 繼承和派生的基本概念 通過繼承機制,可以利用已有的數(shù)據(jù)類型來定義新的數(shù)據(jù)類型。 第 4章 繼承機制 繼承和派生的基本概念 從現(xiàn)存類中派生出新類時,可以對派生類做如下幾種變化: ?增加新的成員變量 ?增加新的成員函數(shù) ?重新定義已有的成員函數(shù) ?改變現(xiàn)有成員的屬性 返回本節(jié) 第 4章 繼承機制 繼承的種類 一個派生類既可以從一個基類派生,也可以從多個基類派生。多繼承形成的類層次是一個有向無環(huán)圖。 第 4章 繼承機制 單繼承 〈繼承方式〉 有三種 : public 表示公有繼承方式 private 表示私有繼承方式 protected 表示保護繼承方式 缺省情況下為私有繼承方式?;惓蓡T在派生類中的訪問權(quán)限與繼承方式及基類成員本身被聲明的訪問權(quán)限有關(guān)。 第 4章 繼承機制 公有繼承 賦值兼容規(guī)則:是指在公有繼承情況下,一個派生類的對象可以作為基類的對象來使用的地方。 第 4章 繼承機制 公有繼承 ?派生類的對象可以初始化基類的引用 例如: DerivedClass d。 BaseClass* pb=amp。 第 4章 繼承機制 私 有繼承 把例 Point類私有繼承 Circle類: 按下面修改代碼,其它部分不變。 protected: int R。私有繼承使 Point類中的公有成員函數(shù) movexy()的性質(zhì)發(fā)生了變化。 第 4章 繼承機制 二義性和支配規(guī)則 主函數(shù) main( ) 的語句 ( )中,對象 obj調(diào)用哪個 show( )函數(shù)存在二義性。 Baseclass2::show( )。 第 4章 繼承機制 二義性和支配規(guī)則 Base{val} Base{val}Baseclass1{seta( )} Baseclass2{setb( )}Derivedclass{show( )}第 4章 繼承機制 二義性和支配規(guī)則 從圖可以看出, Derivedclass的對象包含基類 Base的兩個基類子對象:一個是由 Baseclass1路徑產(chǎn)生的,另一個是由 Baseclass2路徑產(chǎn)生的。 返回本節(jié) 第 4章 繼承機制 虛基類 引進虛基類的目的是為了解決二義性問題 ,使得公共基類在它的派生類對象中只產(chǎn)生一個基類子對象 。} }。 【 例 】 分析程序的輸出結(jié)果,理解繼承中構(gòu)造函數(shù)的調(diào)用順序。 處于同一層次的各基類構(gòu)造函數(shù)的調(diào)用順序取決于定義派生類所指定的基類順序,與派生類構(gòu)造函數(shù)中所定義的成員初始化列表順序無關(guān)。 ?若派生類沒有構(gòu)造函數(shù)而基類有,則基類必須擁有缺省構(gòu)造函數(shù)。只有這樣,當(dāng)創(chuàng)建派生類的對象時,基類的構(gòu)造函數(shù)才能獲得執(zhí)行機會。只有這樣,當(dāng)創(chuàng)建派生類的對象時,才能自動執(zhí)行基類的默認構(gòu)造函數(shù)。 第 4章 繼承機制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 第四種情況:若派生類和基類都有構(gòu)造函數(shù),但基類沒有缺省構(gòu)造函數(shù),則派生類的每一個構(gòu)造函數(shù)必須在其初始化列表中顯式地調(diào)用基類的某個構(gòu)造函數(shù)。其執(zhí)行順序如下: 先調(diào)用派生類的析構(gòu)函數(shù) 再調(diào)用派生類中子對象類的析構(gòu)函數(shù)(如果派生類中有子對象) 再調(diào)用普通基類的析構(gòu)函數(shù) 最后調(diào)用虛基類的析構(gòu)函數(shù) 第 4章 繼承機制 繼承機制下析構(gòu)函數(shù)的調(diào)用順序 【例 】給例 ,分析程序的輸出結(jié)果,理解派生類析構(gòu)函數(shù)的調(diào)用順序。要求各類提供支持初始化的構(gòu)造函數(shù)和顯示自己成員的成員函數(shù)。 例如: a=3+4; a=”abc”+”def”。 =f。 例如,不能重載二元浮點減法運算符。 從技術(shù)上講,可以任意進行運算符重載,但是,如果脫離原有語義太遠,就會使程序造成混亂,所以最好堅持如下的 4個 “ 不能改變 ” : ? 不能改變運算符操作數(shù)的個數(shù) ? 不能改變運算符原有的優(yōu)先級 ? 不能改變運算符原有的結(jié)合性 ? 不能改變運算符原有的語法結(jié)構(gòu) 返回本節(jié) 第 4章 繼承機制 編譯程序選擇重載運算符的規(guī)則 運算符重載實際是一個函數(shù),所以運算符的重載實際上是函數(shù)的重載。 〈 運算符 〉 為要重載的運算符,〈 形式參數(shù)表 〉 中的參數(shù)個數(shù)與重載的運算符操作數(shù)的個數(shù)有關(guān)。 如果“ +”用成員函數(shù)重載,編譯時會出錯。這時,該語句右邊的表達式被解釋為: operator + (, c1)。 ?友元函數(shù)不能重載 ( )、 [ ]、和 運算符。 雙目運算符重載 第 4章 繼承機制 雙目運算符重載 返回本節(jié) 第 4章 繼承機制 賦值運算符重載 返回首頁 淺拷貝與深拷貝 重載賦值運算符的格式 重載賦值運算符函數(shù)的返回值 賦值運算符重載函數(shù)與拷貝構(gòu)造函數(shù)的區(qū)別 第 4章 繼承機制 淺拷貝與深拷貝 如果一個類的數(shù)據(jù)成員中有指向動態(tài)分配空間的指針,通常應(yīng)該定義拷貝構(gòu)造函數(shù),并重載賦值運算符,否則會出現(xiàn)運行錯誤。obj) { delete dobj。例 返回一個 Namelist對象的引用,返回表達式是 *this,通過對 this的提取操作得到對象本身。例如,下面的語句是正確的。在下述 3種情況下,系統(tǒng)將自動調(diào)用所屬類的拷貝構(gòu)造函數(shù): ?當(dāng)說明新的類對象的同時要給它賦值另一個已存在對象的各成員當(dāng)前值。 返回本節(jié) 第 4章 繼承機制 特殊運算符重載 返回首頁 [ ]運算符重載 ( )運算符重載 第 4章 繼承機制 [ ]運算符重載 對下標(biāo)運算符[ ]進行重載,只能重載為類成員函數(shù) ,不可重載為友元函數(shù)。 重載函數(shù)調(diào)用運算符格式: 〈 類型 〉 operator( )( 〈 參數(shù)表 〉 ); 其中, 〈 類型 〉 可以為任意類型, 〈 參數(shù)表 〉 中可以是任意多個參數(shù),也可以沒有參數(shù),可以指定默認值。 復(fù)數(shù)與整數(shù)的混合運算。 ()。 //c= + (12)。 //c= (12)。 } 第 4章 繼承機制 基本類型到類類型的轉(zhuǎn)換 運行結(jié)果: c1=+ c2=+ c1+12=+ c212=+ 返回本節(jié) 第 4章 繼承機制 類類型到基本類型的轉(zhuǎn)換 構(gòu)造函數(shù)能夠把基本類型對象轉(zhuǎn)換成指定類對象,但不能把類對象轉(zhuǎn)換為基本類型數(shù)據(jù)。 類類型轉(zhuǎn)換運算符函數(shù)格式: operator〈返回類型名〉() { …… return 〈基本類型值〉 } 第 4章 繼承機制 類類型到基本類型的轉(zhuǎn)換 【 例 】 示例重載類類型轉(zhuǎn)換運算符 第 4章 繼承機制 類類型到基本類型的轉(zhuǎn)換 【 例 】 示例多個重載類類型轉(zhuǎn)換運算符 第 4章 繼承機制 類類型到基本類型的轉(zhuǎn)換 返回本節(jié) 第 4章 繼承機制 應(yīng)用實例 內(nèi)容:設(shè)向量 X=( x1,x2,x3,x4)和 Y=( y1,y2,y3,y4),則它們之間的加和減分別定義為: X +Y =( x1 + y1, x2 + y2, x3 + y3, x4 + y4) X – Y =( x1 – y1, x2 – y2, x3 – y3, x4 – y4) 設(shè)計一個向量類,進行相應(yīng)運算符的重載,以下標(biāo)方式訪問各向量分量,計算上述向量的和與差,輸出結(jié)果,并返回向量的長度。} 和 float max(float a,float b) {return ab? a:b。 在 C++中,模板分為函數(shù)模板和類模板。 通過參數(shù)實例化可以再構(gòu)造出具體的函數(shù)或類,稱為模板函數(shù)和模板類,它們之間的關(guān)系如下圖所示。 template typename T T max(T a, T b) {return ab? a:b。但 參數(shù)表 至少有一個形參的類型必須用模板參數(shù)表 中的形參來定義,并且在 模板參數(shù)表 中的每個模板參數(shù)都必須在 參數(shù)表 中得到使用,即作為形參的類型使用。它不是一個實實在在的函數(shù),編譯時并不產(chǎn)生任何執(zhí)行代碼。 第 4章 繼承機制 函數(shù)模板的實例化 【 例 】 利用例 的較大值。 第 4章 繼承機制 函數(shù)模板的重載 第 4章 繼承機制 函數(shù)模板的重載 返回本節(jié) 第 4章 繼承機制 類模板 類模板定義 類模板的實例化 使用函數(shù)類型參數(shù)的類模板 使用默認參數(shù)的類模板 返回首頁 第 4章 繼承機制 同函數(shù)模板一樣,使用類模板可以為類定義一種模式,使得類中的某些數(shù)據(jù)成員、某些成員函數(shù)的參數(shù)、某些成員函數(shù)的返回值能取任意類型。放在類模板的外部,采用以下形式: template 模板參數(shù)表 返回值類型 類模板名 類型名表 ::函數(shù)名 (參數(shù)表 ) { 函數(shù)體 } 其中, 類模板名 即是類模板中定義的名稱, 類型名表 即是類模板定義中的類型形式參數(shù)表中的參數(shù)名。還可以有非類參數(shù)的參數(shù),一般稱之為函數(shù)類型參數(shù),也稱之為無類型模板參數(shù)。當(dāng)類模板被實例化時,如果沒有指定其它的數(shù)據(jù)類型,則使用默認類型。標(biāo)準模板庫 (Standard Template Library, STL)是標(biāo)準C++庫的一部分。分為 vector、 deque和 1ist 3種類型。例如, vector和 deque都重載了操作符 [ ],而 1ist則沒有,所以 1ist容器不支持隨機訪問,除 operator[ ]和 at()函數(shù)外, 1ist提供 vector的其余功能。 容器 第 4章 繼承機制
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1