新手筆記本—C++ 繼承(public、protected、private)構造與析構

訪問權限:

public(公有) -內部、 子類、 外部    (客廳- 大家都能參觀)                                   最高級

protected(保護)-   內部 、子類     (臥室-只有你和你媳婦還有兒子能進去)    中級

private(私有) - 內部                          (加密加密加密保險箱-只有你自己能打開)最低級

繼承

class  B: public A   B類繼承了A類的成員變量以及方法 (public), A爲基類 (父類)B爲派生類(子類)。


繼承特性:

public繼承:       (父類)public       ——(子類)public

                              (父類)protected ——(子類)protected

                              (父類)private       ——    子類無權限訪問


protected繼承: (父類)public       ——(子類)protected

                              (父類)protected ——(子類)protected

                              (父類)private       ——    子類無權限訪問  


private繼承:      (父類)public       ——(子類)private

                              (父類)protected ——(子類)private

                              (父類)private       ——    子類無權限訪問


(!!!子類的所有訪問特性級別不能高於繼承模式。)


父類先構造,子類再構造。

子類先析構,父類再析構。


構造函數調用先後 示例程序:

#include<iostream>
using namespace std;

class A    //先定義A類
{
public:
A()    //A類的構造函數
{
cout<<"A"<<endl;
}
};

class B: public A   //B類繼承A類
{
public:
    B()             //B類的構造函數
{
cout<<"B"<<endl;
}
};

void main()
{
    B b;         // 結果顯示先輸出A再輸出B
}


析構函數調用先後 示例程序:

#include<iostream>
using namespace std;

class A    //先定義A類
{
public:
A()    //A類的構造函數
{
cout<<"A"<<endl;
}
~A()  //A類的析構函數
{
cout<<"AA"<<endl;
}
};

class B: public A   //B類繼承A類
{
public:
    B()             //B類的構造函數
{
cout<<"B"<<endl;
}
    ~B()             //B類的析構函數
{
cout<<"BB"<<endl;
}
};

void main()
{
    B b;         // 結果顯示
}











發佈了34 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章