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

正文內(nèi)容

面向?qū)ο蟪绦蛟O(shè)計(jì)教程(c++語言描述)下ppt-文庫吧

2024-10-01 05:35 本頁面


【正文】 類所指定的基類順序,與派生類構(gòu)造函數(shù)中所定義的成員初始化列表順序無關(guān)。 第 4章 繼承機(jī)制 繼承機(jī)制下構(gòu)造函數(shù)的調(diào)用順序 【 例 】 分析程序的輸出結(jié)果,理解多繼承方式下構(gòu)造函數(shù)的調(diào)用順序。 第 4章 繼承機(jī)制 繼承機(jī)制下構(gòu)造函數(shù)的調(diào)用順序 【 例 】 分析程序的輸出結(jié)果,理解有虛基類時(shí),多繼承方式下構(gòu)造函數(shù)的調(diào)用順序。 第 4章 繼承機(jī)制 繼承機(jī)制下構(gòu)造函數(shù)的調(diào)用順序 返回本節(jié) 第 4章 繼承機(jī)制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 分四種情況討論派生類構(gòu)造函數(shù)的規(guī)則: ? 若派生類有構(gòu)造函數(shù)而基類沒有,當(dāng)創(chuàng)建派生類的對(duì)象時(shí),派生類的相應(yīng)構(gòu)造函數(shù)被自動(dòng)調(diào)用。 ?若派生類沒有構(gòu)造函數(shù)而基類有,則基類必須擁有缺省構(gòu)造函數(shù)。只有這樣,當(dāng)創(chuàng)建派生類的對(duì)象時(shí),才能自動(dòng)執(zhí)行基類的默認(rèn)構(gòu)造函數(shù)。 第 4章 繼承機(jī)制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 ? 若派生類有構(gòu)造函數(shù),且基類有缺省構(gòu)造函數(shù),則創(chuàng)建派生類的對(duì)象時(shí),基類的缺省構(gòu)造函數(shù)會(huì)自動(dòng)執(zhí)行,除非當(dāng)前被調(diào)用的派生類構(gòu)造函數(shù)在其初始化段中顯式地調(diào)用了基類的有參構(gòu)造函數(shù)。 ? 若派生類和基類都有構(gòu)造函數(shù),但基類沒有缺省構(gòu)造函數(shù),則派生類的每一個(gè)構(gòu)造函數(shù)必須在其初始化列表中顯式地調(diào)用基類的某個(gè)構(gòu)造函數(shù)。只有這樣,當(dāng)創(chuàng)建派生類的對(duì)象時(shí),基類的構(gòu)造函數(shù)才能獲得執(zhí)行機(jī)會(huì)。 第 4章 繼承機(jī)制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 第一種情況:若派生類有構(gòu)造函數(shù)而基類沒有,當(dāng)創(chuàng)建派生類的對(duì)象時(shí),派生類的相應(yīng)構(gòu)造函數(shù)被自動(dòng)調(diào)用。 【 例 】 分析程序,討論派生類有構(gòu)造函數(shù),基類沒有構(gòu)造函數(shù)時(shí),派生類構(gòu)造函數(shù)的規(guī)則。 第 4章 繼承機(jī)制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 第二種情況:若派生類沒有構(gòu)造函數(shù)而基類有,則基類必須擁有缺省構(gòu)造函數(shù)。只有這樣,當(dāng)創(chuàng)建派生類的對(duì)象時(shí),才能自動(dòng)執(zhí)行基類的默認(rèn)構(gòu)造函數(shù)。 【 例 】 分析程序,討論派生類無構(gòu)造函數(shù),基類有構(gòu)造函數(shù)時(shí),派生類構(gòu)造函數(shù)的規(guī)則。 第 4章 繼承機(jī)制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 第三種情況:若派生類有構(gòu)造函數(shù),且基類有缺省構(gòu)造函數(shù),則創(chuàng)建派生類的對(duì)象時(shí),基類的缺省構(gòu)造函數(shù)會(huì)自動(dòng)執(zhí)行,除非當(dāng)前被調(diào)用的派生類構(gòu)造函數(shù)在其初始化段中顯式地調(diào)用了基類的有參構(gòu)造函數(shù)。 【 例 】 分析程序,討論派生類有構(gòu)造函數(shù),基類有缺省構(gòu)造函數(shù)時(shí),派生類構(gòu)造函數(shù)的規(guī)則。 第 4章 繼承機(jī)制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 第四種情況:若派生類和基類都有構(gòu)造函數(shù),但基類沒有缺省構(gòu)造函數(shù),則派生類的每一個(gè)構(gòu)造函數(shù)必須在其初始化列表中顯式地調(diào)用基類的某個(gè)構(gòu)造函數(shù)。只有這樣,當(dāng)創(chuàng)建派生類的對(duì)象時(shí),基類的構(gòu)造函數(shù)才能獲得執(zhí)行機(jī)會(huì)。 【 例 】 分析程序,討論派生類有構(gòu)造函數(shù),基類無缺省構(gòu)造函數(shù)時(shí),派生類構(gòu)造函數(shù)的規(guī)則。 第 4章 繼承機(jī)制 派生類構(gòu)造函數(shù)的調(diào)用規(guī)則 返回本節(jié) 第 4章 繼承機(jī)制 繼承機(jī)制下析構(gòu)函數(shù)的調(diào)用順序 由于析構(gòu)函數(shù)不能被繼承,因此在執(zhí)行派生類的析構(gòu)函數(shù)時(shí),也要調(diào)用基類的析構(gòu)函數(shù)。其執(zhí)行順序如下: 先調(diào)用派生類的析構(gòu)函數(shù) 再調(diào)用派生類中子對(duì)象類的析構(gòu)函數(shù)(如果派生類中有子對(duì)象) 再調(diào)用普通基類的析構(gòu)函數(shù) 最后調(diào)用虛基類的析構(gòu)函數(shù) 第 4章 繼承機(jī)制 繼承機(jī)制下析構(gòu)函數(shù)的調(diào)用順序 【例 】給例 ,分析程序的輸出結(jié)果,理解派生類析構(gòu)函數(shù)的調(diào)用順序。 第 4章 繼承機(jī)制 繼承機(jī)制下析構(gòu)函數(shù)的調(diào)用順序 返回本節(jié) 第 4章 繼承機(jī)制 應(yīng)用實(shí)例 返回首頁 定義一個(gè)點(diǎn)類( Point)、圓類( Circle)和圓柱體類( Cylinder)的層次結(jié)構(gòu)。圓包括圓心和半徑兩個(gè)數(shù)據(jù)成員,圓心具有點(diǎn)類的所有特征。圓柱體類由半徑和高構(gòu)成。要求各類提供支持初始化的構(gòu)造函數(shù)和顯示自己成員的成員函數(shù)。編寫主函數(shù),測試這個(gè)層次結(jié)構(gòu),輸出圓柱體類的相關(guān)信息。 目的:理解單繼承中的保護(hù)成員的作用,掌握單繼承的使用。 第 4章 繼承機(jī)制 第 6章 運(yùn)算符重載 運(yùn)算符重載的規(guī)則 運(yùn)算符重載的形式 基本運(yùn)算符重載 賦值運(yùn)算符重載 特殊運(yùn)算符重載 類類型轉(zhuǎn)換運(yùn)算符重載 應(yīng)用實(shí)例 第 4章 繼承機(jī)制 運(yùn)算符重載的規(guī)則 返回首頁 運(yùn)算符重載的規(guī)則 編譯程序選擇重載運(yùn)算符的規(guī)則 第 4章 繼承機(jī)制 運(yùn)算符重載的規(guī)則 運(yùn)算符重載就是賦予已有的運(yùn)算符多重含義。 例如: a=3+4; a=”abc”+”def”。 同一個(gè)運(yùn)算符 “ + ” ,由于所操作的數(shù)據(jù)類型不同而具有不同的意義,這就是運(yùn)算符重載,而且是系統(tǒng)預(yù)先定義的運(yùn)算符重載。 第 4章 繼承機(jī)制 運(yùn)算符重載的規(guī)則 重載運(yùn)算符必須遵循下列規(guī)則: (1) 重載運(yùn)算符必須符合語言語法。 例如,不能在 C++中這樣寫: float f。 =f。 因此,不能重載 “ =”運(yùn)算符來做下面操作: Complex c。 +6i=c。 第 4章 繼承機(jī)制 運(yùn)算符重載的規(guī)則 (2) 不能重載對(duì)內(nèi)部 C++數(shù)據(jù)類型進(jìn)行操作的運(yùn)算符。 例如,不能重載二元浮點(diǎn)減法運(yùn)算符。 (3) 不能創(chuàng)建新的運(yùn)算符。 (4) 不能重載下面運(yùn)算符: . 類成員選擇運(yùn)算符 .* 成員指針運(yùn)算符 :: 作用域運(yùn)算符 ?: 條件表達(dá)式運(yùn)算符 除此之外的運(yùn)算符都可以被重載,并且只有“ =”的重載函數(shù)不能被繼承。 第 4章 繼承機(jī)制 運(yùn)算符重載的規(guī)則 (5) 重載運(yùn)算符要保持原有的基本語義不變。 從技術(shù)上講,可以任意進(jìn)行運(yùn)算符重載,但是,如果脫離原有語義太遠(yuǎn),就會(huì)使程序造成混亂,所以最好堅(jiān)持如下的 4個(gè) “ 不能改變 ” : ? 不能改變運(yùn)算符操作數(shù)的個(gè)數(shù) ? 不能改變運(yùn)算符原有的優(yōu)先級(jí) ? 不能改變運(yùn)算符原有的結(jié)合性 ? 不能改變運(yùn)算符原有的語法結(jié)構(gòu) 返回本節(jié) 第 4章 繼承機(jī)制 編譯程序選擇重載運(yùn)算符的規(guī)則 運(yùn)算符重載實(shí)際是一個(gè)函數(shù),所以運(yùn)算符的重載實(shí)際上是函數(shù)的重載。 編譯程序?qū)\(yùn)算符重載的選擇,遵循著函數(shù)重載的選擇原則。當(dāng)遇到不很明顯的運(yùn)算時(shí),編譯程序?qū)⑷ふ覅?shù)相匹配的運(yùn)算符函數(shù)。 返回本節(jié) 第 4章 繼承機(jī)制 運(yùn)算符重載的形式 返回首頁 用成員函數(shù)重載運(yùn)算符 用友員函數(shù)重載運(yùn)算符 兩種運(yùn)算符重載形式的比較 第 4章 繼承機(jī)制 用成員函數(shù)重載運(yùn)算符 用成員函數(shù)重載運(yùn)算符: 〈 返回值類型 〉 operator〈 運(yùn)算符 〉 ( 〈 形式參數(shù)表 〉 ) 返回類型可以為任何有效類型,但通常返回它們操作類的對(duì)象。 〈 運(yùn)算符 〉 為要重載的運(yùn)算符,〈 形式參數(shù)表 〉 中的參數(shù)個(gè)數(shù)與重載的運(yùn)算符操作數(shù)的個(gè)數(shù)有關(guān)。 返回本節(jié) 第 4章 繼承機(jī)制 用友員函數(shù)重載運(yùn)算符 用友員函數(shù)重載運(yùn)算符的原型為: friend 〈 返回值類型 〉 operator〈 運(yùn)算符 〉 ( 〈 形式參數(shù)表 〉 ) 返回本節(jié) 第 4章 繼承機(jī)制 兩種運(yùn)算符重載形式的比較 用友元或成員函數(shù)重載運(yùn)算符在功能上沒有什么區(qū)別。有時(shí)將二元運(yùn)算符重載為友元函數(shù)比重載為一個(gè)成員函數(shù)使用起來更靈活。例如: c=+c1。 如果“ +”用成員函數(shù)重載,編譯時(shí)會(huì)出錯(cuò)。因?yàn)樵撜Z句右邊的表達(dá)式被解釋為: + (c1)。 由于 float型數(shù)據(jù) ,不能進(jìn)行“ .”操作。解決這個(gè)問題的辦法就是用用友元函數(shù)而不是成員函數(shù)重載加法。這時(shí),該語句右邊的表達(dá)式被解釋為: operator + (, c1)。 兩個(gè)變?cè)急伙@式傳給運(yùn)算符函數(shù)。 第 4章 繼承機(jī)制 兩種運(yùn)算符重載形式的比較 重載為友元函數(shù)的一些限制: ?為保持與 C++中規(guī)定的賦值語義相一致,賦值運(yùn)算符雖然它是一個(gè)二元操作符,但不能重載為友員函數(shù)。同樣,也應(yīng)將 +=、- =等這些賦值運(yùn)算符重載為成員函數(shù)。 ?友元函數(shù)不能重載 ( )、 [ ]、和 運(yùn)算符。 ?在重載增量或減量運(yùn)算符時(shí),若使用友元函數(shù),則需要使用引用參數(shù)。 返回本節(jié) 第 4章 繼承機(jī)制 基本運(yùn)算符重載 單目運(yùn)算符重載 雙目運(yùn)算符重載 返回首頁 第 4章 繼承機(jī)制 1.用成員函數(shù)形式重載運(yùn)算符 ++和-- 以成員函數(shù)方式重載前綴“ ++”運(yùn)算符: 〈 類型 〉〈 類名 〉 :: operator++( ); 以成員函數(shù)方式重載后綴“ ++”運(yùn)算符的函數(shù): 〈 類型 〉〈 類名 〉 :: operator++(int); 單目運(yùn)算符重載 第 4章 繼承機(jī)制 【例 】用成員函數(shù)重載運(yùn)算符 ++和 ―― 單目運(yùn)算符重載 第 4章 繼承機(jī)制 2.用友元函數(shù)形式重載運(yùn)算符 ++和-- 以友元函數(shù)方式重載前綴“ ++”運(yùn)算符: 〈 類型 〉 operator++(〈 類名 〉 & ); 以友元方式重載后綴“ ++”運(yùn)算符: 〈 類型 〉 operator++(〈 類名 〉 a, i nt); 單目運(yùn)算符重載 第 4章 繼承機(jī)制 【 例 】 用友元函數(shù)重載運(yùn)算符 ++和 ―― 單目運(yùn)算符重載 第 4章 繼承機(jī)制 單目運(yùn)算符重載 返回本節(jié) 第 4章 繼承機(jī)制 【 例 】 用成員函數(shù)重載運(yùn)算符,實(shí)現(xiàn)復(fù)數(shù)的二元加法、減法運(yùn)算。 雙目運(yùn)算符重載 第 4章 繼承機(jī)制 【例 】用友元函數(shù)重載運(yùn)算符,實(shí)現(xiàn)復(fù)數(shù)的二元加法、減法運(yùn)算。 雙目運(yùn)算符重載 第 4章 繼承機(jī)制 雙目運(yùn)算符重載 返回本節(jié) 第 4章 繼承機(jī)制 賦值運(yùn)算符重載 返回首頁 淺拷貝與深拷貝 重載賦值運(yùn)算符的格式 重載賦值運(yùn)算符函數(shù)的返回值 賦值運(yùn)算符重載函數(shù)與拷貝構(gòu)造函數(shù)的區(qū)別 第 4章 繼承機(jī)制 淺拷貝與深拷貝 如果一個(gè)類的數(shù)據(jù)成員中有指向動(dòng)態(tài)分配空間的指針,通常應(yīng)該定義拷貝構(gòu)造函數(shù),并重載賦值運(yùn)算符,否則會(huì)出現(xiàn)運(yùn)行錯(cuò)誤。 【 例 】 分析下列程序中存在的問題。 第 4章 繼承機(jī)制 淺拷貝與深拷貝 返回本節(jié) 第 4章 繼承機(jī)制 重載賦值運(yùn)算符的格式 對(duì)賦值運(yùn)算符進(jìn)行重載的類成員函數(shù)“構(gòu)架”大致如下: Classnameamp。 Classname ::operator=( Classname obj) //Classname為某個(gè)類名 ,用于完成調(diào)用者對(duì)象與形參對(duì)象的賦值操作 if ( this!= amp。obj) { delete dobj。 //釋放調(diào)用者對(duì)象 dobj已經(jīng)分配到的動(dòng)態(tài)存儲(chǔ)空間 使用 new為調(diào)用者對(duì)象分配與形參 obj對(duì)象同樣大小的動(dòng)態(tài)存儲(chǔ)空間; 將形參 obj對(duì)象的動(dòng)態(tài)存儲(chǔ)空間中的數(shù)據(jù)賦給調(diào)用者對(duì)象; return * this; //返回調(diào)用者對(duì)象 } 第 4章 繼承機(jī)制 重載賦值運(yùn)算符的格式 【 例 】 重載賦值運(yùn)算符,使例 運(yùn)行,并完善它。 第 4章 繼承機(jī)制 重載賦值運(yùn)算符的格式 返回本節(jié) 第 4章 繼承機(jī)制 重載賦值運(yùn)算符函數(shù)的返回值 重載賦值運(yùn)算符時(shí),通常返回調(diào)用該運(yùn)算符的對(duì)象的引用 ,我們知道,不能使用引用返回一個(gè)局部對(duì)象,this可以解決這個(gè)問題。只要非靜態(tài)成員函數(shù)載運(yùn)行,this指針就在作用域內(nèi)。例 返回一個(gè) Namelist對(duì)象的引用,返回表達(dá)式是 *this,通過對(duì) this的提取操作得到對(duì)象本身。例如,賦值語句 n2=n1。 函數(shù)返回 n2的引用。這樣賦值就能進(jìn)行連續(xù)賦值操作。例如,下面的語句是正確的。 Namelist n1(first object),n2(second object),n3(third object)。 n3=n2=n1。 返回本節(jié) 第 4章 繼承機(jī)制 賦值運(yùn)算符重載函數(shù)與拷貝構(gòu)造函數(shù)區(qū)別 ( 1)拷貝構(gòu)造函數(shù)是用已存在對(duì)象的各成員當(dāng)前值來創(chuàng)建一個(gè)相同的新對(duì)象。在下述 3種情況下,系統(tǒng)將自動(dòng)調(diào)用所屬類的拷貝構(gòu)造函數(shù): ?當(dāng)說明新的類對(duì)象的同時(shí)要給它賦值另一個(gè)已存在對(duì)象的各成員當(dāng)前值。 ?當(dāng)對(duì)象作為函數(shù)的賦值參數(shù)而對(duì)函數(shù)進(jìn)行調(diào)用要進(jìn)行實(shí)參和形參的結(jié)合時(shí)。 ?當(dāng)函數(shù)的
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1