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

正文內(nèi)容

第八章多態(tài)性(參考版)

2024-08-12 13:22本頁面
  

【正文】 ? 實(shí)驗(yàn)任務(wù) –實(shí)驗(yàn)七 。 fun(p)。 //調(diào)用派生類 B1函數(shù)成員 p=amp。b1。 //聲明派生類對象 D1 d1。 } int main() //主函數(shù) { B0 *p。} //虛成員函數(shù) }。} //虛成員函數(shù) }。 //純虛函數(shù)成員 }。 C++語言程序設(shè)計(jì) 59 例 85 純虛函數(shù)與抽象類 include iostream using namespace std。 – 不能聲明抽象類的對象。 – 對于暫時無法實(shí)現(xiàn)的函數(shù),可以聲明為純虛函數(shù),留給派生類去實(shí)現(xiàn)。 純虛函數(shù) C++語言程序設(shè)計(jì) 57 抽象類 帶有純虛函數(shù)的類稱為抽象類 : class 類名 { virtual 類型 函數(shù)名 (參數(shù)表 )=0。“ =0”本質(zhì)上是將指向函數(shù)體的指針定為 NULL。而純虛函數(shù)不能調(diào)用。 定義純虛函數(shù)必須注意: 1 定義純虛函數(shù)時,不能定義虛函數(shù)的實(shí)現(xiàn)部分。定義純虛函數(shù)的一般格式為: virtual 返回類型 函數(shù)名(參數(shù)表) =0; 含有純虛函數(shù)的基類是不能用來定義對象的。 虛 函 數(shù) C++語言程序設(shè)計(jì) 56 純虛函數(shù) ( pure virtual function)是指被標(biāo)明為不具體實(shí)現(xiàn)的虛擬成員函數(shù)。 fun(p)。 //調(diào)用派生類 B1函數(shù)成員 p=amp。b1。 fun(p)。 //聲明派生類對象 p=amp。 //聲明基類對象和指針 B1 b1。 虛 函 數(shù) void fun(B0 *ptr) //普通函數(shù) { ptrdisplay()。 class D1: public B1 //公有派生 { public: void display() { coutD1::display()endl。 class B1: public B0 //公有派生 { public: void display() { coutB1::display()endl。 class B0 //基類 B0聲明 {public: //外部接口 virtual void display() //虛成員函數(shù) {coutB0::display()endl。 若不是虛函數(shù),則不管基類指針指向的哪個派生類對象,調(diào)用時都 會調(diào)用基類中定義的那個函數(shù)。在動態(tài)分配內(nèi)存時所有C++的標(biāo)準(zhǔn)庫函數(shù)都采用這種格式。 根據(jù)賦值兼容規(guī)則可以用基類的指針指向派生類對象,如果由該指針撤銷派生類對象,則必須將析構(gòu)函數(shù)說明為虛函數(shù),實(shí)現(xiàn)多態(tài)性,自動調(diào)用派生類析構(gòu)函數(shù)。 8. 如果定義放在類外, virtual只能加在函數(shù)聲明前面,不能(再)加在函數(shù)定義前面。為了實(shí)現(xiàn)多態(tài)性,每一個派生類中均要保存相應(yīng)虛函數(shù)的入口地址表,函數(shù)的調(diào)用機(jī)制也是間接實(shí)現(xiàn)。 在基類中及其派生類中都動態(tài)分配的內(nèi)存空間時,必須把析構(gòu)函數(shù)定義為虛函數(shù),實(shí)現(xiàn)撤消對象時的多態(tài)性。 5. 內(nèi)聯(lián)函數(shù)每個對象一個拷貝,無映射關(guān)系,不能作為虛函數(shù)。 3. 靜態(tài)成員函數(shù),是所有同一類對象共有,不受限于某個對象,不能作為虛函數(shù)。 2. 只有類的成員函數(shù)才能說明為虛函數(shù)。否則被認(rèn)為是重載,而不是虛函數(shù)。但重新定義時不僅要同名,而且它的參數(shù)表和返回類型全部與基類中的虛函數(shù)一樣,否則聯(lián)編時出錯。 當(dāng)某一個類的一個類成員函數(shù)被定義為虛函數(shù),則由該類派生出來的所有派生類中,該函數(shù)始終保持虛函數(shù)的特征。 虛 函 數(shù) C++語言程序設(shè)計(jì) 48 二 虛函數(shù)的定義 虛函數(shù)是一個類的成員函數(shù),定義格式如下: virtual 返回類型 函數(shù)名(參數(shù)表); 關(guān)鍵字 virtual指明該成員函數(shù)為虛函數(shù)。 ? 本質(zhì):不是重載聲明而是覆蓋。 ? virtual 只用來說明類聲明中的原型,不能用在函數(shù)實(shí)現(xiàn)時。 ? 是非靜態(tài)的成員函數(shù)。 虛函數(shù)首先是一種成員函數(shù),它可以在該類的派生類中被重新定義并被賦予另外一種處理功能。 C++語言程序設(shè)計(jì) 46 一、 基本概念 ? 首先, C++通過虛函數(shù)實(shí)現(xiàn)多態(tài) .無論發(fā)送消息的對象屬于什么類,它們均發(fā)送具有同一形式的消息,對消息的處理方式可能隨接手消息的對象而變 的處理方式被稱為多態(tài)性。 通用性是程序追求的主要目標(biāo)之一。它是通過類繼承關(guān)系和虛函數(shù)來實(shí)現(xiàn)的。利用多態(tài)性技術(shù),可以調(diào)用同一個函數(shù)名的函數(shù),實(shí)現(xiàn)完全不同的功能。 C++語言程序設(shè)計(jì) 45 多態(tài)性與虛函數(shù) 多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的關(guān)鍵技術(shù)之一。 ? 靜態(tài)綁定 –綁定過程出現(xiàn)在編譯階段,用對象名或者類名來限定要調(diào)用的函數(shù)。否則施加于拷貝,而實(shí)參不變。 c , int) //注意友元方式與前者的區(qū)別 {return (++ , ++) 。 但采用友元方式則必須使用引用 , 因?yàn)?被施加 “ ++”運(yùn)算的是一個 參數(shù) 。 友元函數(shù) perator+執(zhí)行過程內(nèi)存分配 C++語言程序設(shè)計(jì) 39 單目運(yùn)算符前 “ ++”的成員函數(shù)重載方式如下: Complex Complex::operator++() {return (++Real , ++Image) 。 c2) 這里采用 Complex對象的引用而不是對象本身 , 調(diào)用時不再重新分配內(nèi)存建立一個復(fù)制的對象 , 函數(shù)效率會更高 。 Operator+友元函數(shù)的聲明可改進(jìn)為: friend Complex operator+(const Complex amp。 C++語言程序設(shè)計(jì) 38 在這里友元函數(shù)可以有兩個參數(shù) , 而對應(yīng)的成員函數(shù)只有一個參數(shù) , 所以友元函數(shù)的使用可以更靈活 、 更方便 。注意這里的兩個參數(shù)是傳值,在函數(shù)內(nèi)是建立了兩個復(fù)數(shù)對象,而把實(shí)參的值傳進(jìn)去,進(jìn)行運(yùn)算。 因?yàn)橛卸x的 缺省的構(gòu)造函數(shù) ,實(shí)數(shù)會被 強(qiáng)制轉(zhuǎn)換 為虛部為零的
點(diǎn)擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1