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

正文內(nèi)容

【精品】面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言c84-全文預(yù)覽

  

【正文】 )。雖然可以通過(guò)類(lèi)限定符的方式避免二義性,但問(wèn)題的關(guān)鍵在于我們不需要在派生類(lèi)對(duì)象中存在多個(gè)基類(lèi)對(duì)象的拷貝!如果要使這個(gè)公共基類(lèi)在派生類(lèi)中只產(chǎn)生一個(gè)基類(lèi)子對(duì)象,則需要將這個(gè)基類(lèi)設(shè)置為 虛基類(lèi) ?!敝惺菍?duì) B1 繼承的基類(lèi) A 的成員 a,還是對(duì) B2繼承基類(lèi) A 的成員 a 進(jìn)行訪(fǎng)問(wèn)呢?故有二義性。 =8。 class C: public B1, public B2{ int c。 class B1: public A{ int b1。 或者 ::f()。 void f()。 //出現(xiàn)二義性 } class A { public: int value。 }。 下面是出現(xiàn)二義性的兩種情況: – 訪(fǎng)問(wèn)不同基類(lèi)的具有相同名字成員時(shí)可能出現(xiàn)二義性 。 Quadrangle Diamond Square Rectangle Quadrangle 6/6/2020 32 ? 定義多繼承派生類(lèi)的語(yǔ)法格式: class 派生類(lèi)名 : 繼承方式 1 基類(lèi)名 1, 繼承方式 2 基類(lèi)名 2, …… { ……//派生類(lèi)新添加的成員 }。 class derived:public base{ int a。 void main() { Derived d。 6/6/2020 28 ? 構(gòu)造函數(shù)的調(diào)用順序如下: 先調(diào)用基類(lèi)構(gòu)造函數(shù); 再調(diào)用對(duì)象成員所屬類(lèi)的構(gòu)造函數(shù); 最后調(diào)用派生類(lèi)構(gòu)造函數(shù); ? 析構(gòu)函數(shù)的調(diào)用順序如下: 先調(diào)用派生類(lèi)的析構(gòu)函數(shù); 再調(diào)用對(duì)象成員所屬類(lèi)的析構(gòu)函數(shù); 最后調(diào)用基類(lèi)的析構(gòu)函數(shù); 6/6/2020 29 舉例 class Base{ public: Base() { cout“Base created\n”。 這部分叫做派生類(lèi)類(lèi)對(duì)象的 “ 切片 ” (sliced)。refB=Dobj。 總結(jié) 6/6/2020 23 賦值兼容規(guī)則 ? 在 公有派生 方式下 , 派生類(lèi)對(duì)象可以作為基類(lèi)對(duì)象來(lái)使用 , 具體方式如下: – 派生類(lèi)的對(duì)象可以直接賦值給基類(lèi)的對(duì)象 – 基類(lèi)對(duì)象的引用可以引用一個(gè)派生類(lèi)對(duì)象 – 基類(lèi)對(duì)象的指針可以指向一個(gè)派生類(lèi)對(duì)象 ? 需要思考的兩個(gè)問(wèn)題: – 為什么是 “ 派生類(lèi)對(duì)象 基類(lèi)對(duì)象 ” , 而不是 “ 基類(lèi)對(duì)象 派生類(lèi)對(duì)象 ” ? – 其他繼承方式會(huì)有以上規(guī)則嗎 ? 6/6/2020 24 解決第一個(gè)問(wèn)題 ? 以上規(guī)則的具體使用方式: v1 v2 v1 v2 v3 v4 基類(lèi)對(duì)象 派生類(lèi)對(duì)象 Base Bobj。//錯(cuò)誤 ::v2=9。 //使用的是 Base中的 v2 int sum2=v1+Base::v2+v3。 public: int v3。 Base(int a=0,int b=0){ v1=a。 ? 一般很少使用保護(hù)派生方式 。 void main( ){ Derived obj(5,6)。v4=b。 } }。 6/6/2020 16 舉例 class Base{ protected: int v1。 =8。 } void func(){ int sum1=v1+v2+v3+v4。 class Derived : private Base{ int v3。 public: int v2。 } 6/6/2020 12 私有派生類(lèi) ? 在聲明派生類(lèi)時(shí)將繼承方式指定為 private時(shí) , 該類(lèi)稱(chēng)為基類(lèi)的私有派生類(lèi) 。//錯(cuò)誤 int sum2=v2+v3+v4。 public: int v4。 Base(int a=0,int b=0){ v1=a。 6/6/2020 10 ? 基類(lèi)的成員在公有派生類(lèi)中的引用權(quán)限 基類(lèi) 公有成員 私有成員 保護(hù)成員 公有派生類(lèi) 公有成員 不可訪(fǎng)問(wèn)成員 保護(hù)成員 ? 公有派生時(shí) , 基類(lèi)的公有成員和保護(hù)成員仍然成為派生類(lèi)的公有成員和保護(hù)成員;而基類(lèi)的私有成員成為派生類(lèi)的 “ 不可訪(fǎng)問(wèn)成員 ” , 不能被派生類(lèi) 直接引用 。 ? “繼承方式 ” 可以是公有繼承 ( public) 、私有繼承 ( private) 、 以及保護(hù)繼承( potected) 。 6/6/2020 5 ? 我們來(lái)看一個(gè)現(xiàn)實(shí)世界中的例子: Rectangle Square Diamond Parallelogram Quadrangle ? 四邊形是一個(gè)基本的概念 , 矩形 、 正方形 、菱形和平行四邊形都是派生的概念 , 因?yàn)樗鼈兌紝儆谒倪呅?, 它們繼承了四邊形的所有性質(zhì) , 同時(shí)又?jǐn)U充出各自的特性 。 當(dāng)然 , 子代同時(shí)還具有父代沒(méi)有的特性 。 ? 面向?qū)ο蟮?繼承技術(shù) 提供了實(shí)現(xiàn)上述目標(biāo)的有力手段 。 但是 , 僅有這些是不夠的 , 我們還希望在類(lèi)的基礎(chǔ)上能取得更好的 可重用性和可擴(kuò)充性 的目標(biāo) 。 繼承就是這樣 , 會(huì)將一些本質(zhì)的特性遺傳給子代 , 使子代在很大程度上具有與父代相同的性質(zhì) 。 而且子代可以擁有父代沒(méi)有的特性 , 這是 可擴(kuò)充的概念 。 6/6/2020 7 單繼承和多繼承 ? C++中的繼承又分為 單繼承和多繼承: – 單繼承 —— 派生類(lèi)只有一個(gè)直接基類(lèi) – 多繼承 —— 派生類(lèi)有多個(gè)直接基類(lèi) A B C 單繼承 X Y Z 多繼承 6/6/2020 8 單繼承派生類(lèi) ? 定義單繼承派生類(lèi)的語(yǔ)法格式: class 派生類(lèi)名 : 繼承方式 基類(lèi)名 { …… //派生類(lèi)新添加的成員 }。 class 派生類(lèi)名 : public 基類(lèi)名 { …… //派生類(lèi)新添加的成員 }。 public: int v2。 class Derived : public Base{ int v3。 } void func(){ int sum1=v1+v2+v3+v4。 =8。 6/6/2020 14 舉例
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1