日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

C++学习——继承

發(fā)布時間:2024/7/19 c/c++ 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++学习——继承 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1.C++中類成員的訪問權限和繼承權限問題
    • 2.多繼承的優(yōu)缺點
    • 3. 繼承機制中對象之間如何轉換
    • 4.組合與繼承優(yōu)缺點

1.C++中類成員的訪問權限和繼承權限問題

  • 三種訪問權限
  • public:用該關鍵字修飾的成員表示公有成員, 該成員不僅可以在類內可以被訪問,在類外也是可以被訪問的,是類對外提供的可訪問接口;private:用該關鍵字修飾的成員表示私有成員, 該成員僅在類內可以被訪問,在類體外是隱藏狀態(tài);protected:用該關鍵字修飾的成員表示保護成員, 保護成員在類體外同樣是隱藏狀態(tài),但是對于該類的派生類來說,相當于公有成員,在派生類中可以被訪問。
  • 三種繼承方式
  • 若繼承方式是public,基類成員在派生類中的訪問權限保持不變, 也就是說,基類中的成員訪問權限,在派生類中仍然保持原來的訪問權限;若繼承方式是private,基類所有成員在派生類中的訪問權限都會變?yōu)樗接?span id="ozvdkddzhkzd" class="token punctuation">(private)權限;若繼承方式是protected,基類的共有成員和保護成員在派生類中的訪問權限都會變?yōu)楸Wo(protected)權限, 私有成員在派生類中的訪問權限仍然是私有(private)權限。

    2.多繼承的優(yōu)缺點

  • C++允許為一個派生類指定多個基類,這樣的繼承結構被稱做多重繼承。

  • 多重繼承的優(yōu)點很明顯,就是對象可以調用多個基類中的接口;

  • 如果派生類所繼承的多個基類有相同的基類,而派生類對象需要調用這個祖先類的接口方法,就會容易出現二義性

  • 加上全局符確定調用哪一份拷貝。比如pa.Author::eat()調用屬于Author的拷貝。

  • 使用虛擬繼承,使得多重繼承類Programmer_Author只擁有Person類的一份拷貝。

  • 3. 繼承機制中對象之間如何轉換

  • 向上類型轉換

    將派生類指針或引用轉換為基類的指針或引用被稱為向上類型轉換,向上類型轉換會自動進行,而且向上類型轉換是安全的。

  • 向下類型轉換

    將基類指針或引用轉換為派生類指針或引用被稱為向下類型轉換,向下類型轉換不會自動進行,因為一個基類對應幾個派生類,所以向下類型轉換時不知道對應哪個派生類,所以在向下類型轉換時必須加動態(tài)類型識別技術。RTTI技術,用dynamic_cast進行向下類型轉換。

  • 4.組合與繼承優(yōu)缺點

  • 繼承
  • 繼承是Is a 的關系,比如說Student繼承Person,則說明Student is a Person。繼承的優(yōu)點是子類可以重寫父類的方法來方便地實現對父類的擴展。

    繼承的缺點有以下幾點:
    ①:父類的內部細節(jié)對子類是可見的。
    ②:子類從父類繼承的方法在編譯時就確定下來了,所以無法在運行期間改變從父類繼承的方法的行為。
    ③:如果對父類的方法做了修改的話(比如增加了一個參數),則子類的方法必須做出相應的修改。所以說子類與父類是一種高耦合,違背了面向對象思想。

  • 組合
  • 組合也就是設計類的時候把要組合的類的對象加入到該類中作為自己的成員變量。

    組合的優(yōu)點:
    ①:當前對象只能通過所包含的那個對象去調用其方法,所以所包含的對象的內部細節(jié)對當前對象時不可見的。
    ②:當前對象與包含的對象是一個低耦合關系,如果修改包含對象的類中代碼不需要修改當前對象類的代碼。
    ③:當前對象可以在運行時動態(tài)的綁定所包含的對象。可以通過set方法給所包含對象賦值。

    組合的缺點:①:容易產生過多的對象。②:為了能組合多個對象,必須仔細對接口進行定義。

    總結

    以上是生活随笔為你收集整理的C++学习——继承的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。