C++複習要點總結之八——繼承一

來源:互聯網
上載者:User
一 不同的繼承方式會改變繼承成員的訪問屬性

public 修飾的成員變數、方法 在類的內部和外部都可以使用。

protected 修飾的成員變數、方法在類的內部使用,在繼承的子類中使用,類的外部不能使用。(是為了在家族中使用,為了得到繼承!)

private 修飾的成員變數、方法 只能在類的內部使用,不能在類的外部使用

1)C++中的繼承方式會影響子類的對外訪問屬性

public繼承:父類成員在子類中保持原有存取層級

private繼承:父類成員在子類中變為private成員

protected繼承:父類中public成員會變成protected

父類中protected成員仍然為protected

父類中private成員仍然為private

2)private成員在子類中依然存在,但是卻無法訪問到。不論種方式繼承基類,衍生類別都不能直接使用基類的私人成員。

3)C++中子類對外訪問屬性工作表

父類成員存取層級

繼承方式

 public(繼承方式)    proteced(繼承方式)    private(繼承方式)    public   public   proteced  private    proteced   proteced   proteced   private    private   private   private   Private

三看原則:

C++中的繼承方式(public、private、protected)會影響子類的對外訪問屬性

判斷某一句話,能否被訪問

1)看調用語句,這句話寫在子類的內部、外部

2)看子類如何從父類繼承(public、private、protected)

3)看父類中的存取層級(public、private、protected)

衍生類別類成員存取層級設定的原則

思考:如何恰當的使用public,protected和private為成員聲明存取層級?

1、需要被外界訪問的成員直接設定為public

2、只能在當前類中訪問的成員設定為private

3、只能在當前類和子類中訪問的成員設定為protected,protected成員的存取權限介於public和private之間。

二 類型相容性原則

類型相容規則是指在需要基類對象的任何地方,都可以使用公有衍生類別的對象來替代。通過公有繼承,衍生類別得到了基類中除建構函式、解構函式之外的所有成員。這樣,公有衍生類別實際就具備了基類的所有功能,凡是基類能解決的問題,公有衍生類別都可以解決。類型相容規則中所指的替代包括以下情況:

子類對象可以當作父類對象使用

子類對象可以直接賦值給父類對象

子類對象可以直接初始化父類對象

父類指標可以直接指向子類對象

父類引用可以直接引用子類對象

在替代之後,衍生類別對象就可以作為基類的對象使用,但是只能使用從基類繼承的成員。

類型相容規則是多態性的重要基礎之一。

第一層含義:
1-1 基類指標(引用)指向子類對象

Parent *p = Null;p = &c1;p->printp();1-2 指標做函數參數howToPrint(&p1);howToprint(&c1);1-3引用做函數參數howToprint2(p1);howToprint2(c1);

第二層含義

可以讓父類對象,初始化子類對象

Parent p3 = c1;

三 繼承中的物件模型

問題:如何初始化父類成員?父類與子類的建構函式有什麼關係

在子類物件建構時,需要調用父類建構函式對其繼承得來的成員進行初始化

在子類對象析構時,需要調用父類解構函式對其繼承得來的成員進行清理

繼承中的構造析構調用原則(初始化的時候從上而下,先有爹再有兒子)

1、子類對象在建立時會首先調用父類的建構函式

2、父類建構函式執行結束後,執行子類的建構函式

3、當父類的建構函式有參數時,需要在子類的初始化列表中顯示調用

4、解構函式調用的先後順序與建構函式相反

以上就是C++複習要點總結之八——繼承一的內容,更多相關內容請關注topic.alibabacloud.com(www.php.cn)!

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.