欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

C++學(xué)習(xí)筆記——C++類層次結(jié)構(gòu)要點-創(chuàng)新互聯(lián)

目錄
  • 重載解析
  • 多繼承
  • 虛繼承
  • 類的訪問控制public、private、protected
  • 類層次結(jié)構(gòu)中漫游(強(qiáng)制類型轉(zhuǎn)換)
    • 1. dyanmic_cast
    • 2. static_cast
    • 3. const_cast
    • 4. reinterpret_cast
  • 指向成員的指針
  • 擴(kuò)展的類結(jié)構(gòu)信息——typeid
  • 虛析構(gòu)函數(shù)和自由存儲
  • 虛構(gòu)造函數(shù)

專業(yè)成都網(wǎng)站建設(shè)公司,做排名好的好網(wǎng)站,排在同行前面,為您帶來客戶和效益!創(chuàng)新互聯(lián)為您提供成都網(wǎng)站建設(shè),五站合一網(wǎng)站設(shè)計制作,服務(wù)好的網(wǎng)站設(shè)計公司,網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計負(fù)責(zé)任的成都網(wǎng)站制作公司!

參考自《C++程序設(shè)計語言》、《Microsoft C++語言參考》

重載解析

重載解析的使用不會跨越不同類的作用域。來自不同基類的函數(shù)之間的歧義性不能基于參數(shù)類型完成解析。如果需要在不同的基類中使用同名函數(shù),需要在使用前使用命名空間聲明。(如果參數(shù)相同怎么辦?

多繼承

多重繼承提供比單繼承更好的靈活性,但是需要在引用部分成員是添加限定。多重繼承主要要關(guān)注歧義性問題。因為C++查找成員的順序是如果不能將名稱解析為顯示引用的類中的成員,編譯器就會到該類的基類中找,此時會有三種結(jié)果,找到、找不到、有歧義。

虛繼承
  • 可以實現(xiàn)菱形繼承結(jié)構(gòu),即常規(guī)繼承如果存在多繼承,可能將一個類兩次作為基類,存在多條繼承路徑。此時如果要引用基類的成員可能出現(xiàn)歧義性。派生類對象中可能存在多個基類的副本的情況。靜態(tài)成員除外,類的靜態(tài)成員只有一個副本。
  • 虛繼承中,通過虛繼承派生的子類承諾共享虛基類的一份副本。此時再通過派生類派生的子類中訪問虛基類就不會存在歧義性。
  • 另外,如果虛繼承的情況中,只有某條路徑覆蓋了虛基類的成員,直接使用也不會引起歧義性,因為派生類中覆蓋的成員有更高的優(yōu)先級。但是如果在多于一條的虛繼承路徑中覆蓋了虛基類的成員。那么還是會引起歧義性。
類的訪問控制public、private、protected
  • 在對類成員使用關(guān)鍵字時:(在class中,成員默認(rèn)為private,struct中,成員默認(rèn)為public)
    • 一個成員是private,只能由所在類的成員函數(shù)和友元訪問和使用。
    • 一個成員時protected,只能由所在類及其派生類的成員函數(shù)和友元訪問和使用。
    • 一個成員是public,可以由任何函數(shù)訪問和使用。
  • 在對繼承使用關(guān)鍵字時(對基類使用關(guān)鍵字時)【對public成員的訪問規(guī)則改變較大】
    • 基類是private,它的public和protected成員只能由派生類的成員函數(shù)和友元訪問。只有D的成員和友元能將派生類指針轉(zhuǎn)換到基類指針。
    • 基類是protected,它的public和protected成員只能由派生類以及派生類的派生類的成員函數(shù)和友元訪問。也只有他們能將派生類指針轉(zhuǎn)換到基類指針。
    • 基類是public,訪問規(guī)則與成員訪問控制規(guī)則一致。任何函數(shù)都能將派生類指針轉(zhuǎn)換到基類指針。
類層次結(jié)構(gòu)中漫游(強(qiáng)制類型轉(zhuǎn)換) 1. dyanmic_cast
  • 要求多態(tài)性的操作對象。因為非多態(tài)性的操作對象不包含類型信息。

  • 能夠保存一定的運行時需要的對象的類型信息,用于在類的繼承和組合關(guān)系中進(jìn)行安全的轉(zhuǎn)換。

  • 適用于基類與派生類之間的轉(zhuǎn)換兄弟類之間的轉(zhuǎn)換,以及能夠由這兩種場景復(fù)合構(gòu)成的轉(zhuǎn)換。(向上強(qiáng)制、向下強(qiáng)制、交叉強(qiáng)制)。

  • 由于實現(xiàn)的是安全的類型轉(zhuǎn)換,所以通過if(C2* pc2 = dynamic_cast(pc1)),判斷指針在類型轉(zhuǎn)換之后的返回值是否為0,來確定是否實現(xiàn)了安全的類型轉(zhuǎn)換。對于引用的轉(zhuǎn)換的合法性,則通過dynamic_cast本身檢查。如果不能實現(xiàn)轉(zhuǎn)換,則會拋出bad_cast,可以通過try...catch塊設(shè)置處理器進(jìn)行處理。

  • 另外由于編譯器不能對void*所指向的存儲提供任何保證,所以dynamic_cast不能實現(xiàn)從void*出發(fā)的強(qiáng)制轉(zhuǎn)換,因為編譯器需要去查看對象,確定類型。此時需要使用static_cast進(jìn)行轉(zhuǎn)換。

  • void*的synamic_cast可以用于確定多態(tài)類型的對象的起始地址。

  • 如果需要跨系統(tǒng)保存一個非多態(tài)類型的對象的類型信息,可以將非多態(tài)類型的對象包裝在一個要穿過的系統(tǒng)的基類中。然后在需要使用的時候,利用dynamic_cast將對象提取出來。例如:

    class Io_obj{virtual Io_obj* clone() = 0;
    };
    
    class Io_date : public Date, public Io_obj{};
    
    void f(Io_obj* pio){Date* pd = dynamic_cast(pio);
    }
2. static_cast
  • 對于dynamic_cast實現(xiàn)可用之前,有許多強(qiáng)制轉(zhuǎn)換通過其他機(jī)制保證安全。所以dynamic_cast實現(xiàn)的一些操作包含冗余。同時dynamic_cast具有運行時開銷。
  • 另外用于實現(xiàn)從void*出發(fā)的強(qiáng)制轉(zhuǎn)換。
3. const_cast
  • 用于實現(xiàn)const指針與非const指針之間的轉(zhuǎn)換。
  • 但是如果想要實現(xiàn)安全的轉(zhuǎn)換,需要程序員保證該const指針(volatile)本來就不是使用const(或volatile)聲明的。
4. reinterpret_cast 指向成員的指針
  • 與多態(tài)指針的差異
擴(kuò)展的類結(jié)構(gòu)信息——typeid
  • dynamic_cast保存更多類型信息
  • 滿足如得到一個類的名字或者它的布局信息。
虛析構(gòu)函數(shù)和自由存儲 虛構(gòu)造函數(shù)

你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧

當(dāng)前題目:C++學(xué)習(xí)筆記——C++類層次結(jié)構(gòu)要點-創(chuàng)新互聯(lián)
URL鏈接:http://aaarwkj.com/article18/iccdp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計公司、電子商務(wù)、服務(wù)器托管、面包屑導(dǎo)航虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)
午夜在线观看成人av| 国产视频成人免费观看| 国产又大又黄又粗的黄色| 加勒比人妻一区二区三区| 18岁未成年禁止观看视频| 日本少妇一区二区99| 中文字幕亚洲精品视频| 人人妻人人澡人人爽老妇| 日韩精品国产一区二区在线观看| 亚洲一区二区三区欧美精品| 日韩在线不卡av一区二区| 欧美日韩在线国产一区| 日本待黄大片一区二区| 大片天天看菲色亚洲黄色| 蜜臀av中文字幕在线| 久久av天堂在线观看| 中文有码人妻字幕在线| 最新亚洲av熟女播放| 国产熟女av一区二区| 亚洲欧美日韩综合久久| av第一福利大全导航| 国产性生活大片免费看| 日本啪啪精品一区二区三区 | 婷婷色爱区综合五月激情| 清纯唯美亚洲自拍第一页| 亚洲黄色录像一区二区人妻黑人 | 久久九特黄的免费大片| 日本在线免费高清观看| 亚洲国产欧美日韩综合| 亚洲码欧洲码一二三区| 欧美日韩在线一区二区精品| 精品国产av一区蜜臀av| 中文字幕国产精品综合一区| 欧美日韩福利视频在线| 久热在线这里只有精品| 十八女毛片一区二区三区| 亚洲国产日韩精品一区二| 日韩精品视频一二三区| 久久热视频这里有精品| 成人亚洲精品一区二区三区| 国产精品视频不卡免费看|