C++通過繼承機制,可以利用已有的數據類型來定義新的數據類型,下面文章給出了C++基類來管理內存的完整內存池管理程序和測試程序的源代碼,供大家學習切磋。
作為繼承,主要有三種:公有繼承,私有繼承默認繼承方式),保護繼承。公有繼承:基類中的公有成員在派生類中仍公有;基類中的保護成員在派生類中仍保護;基類中的私有成員在派生類中不可見,僅基類可見。
私有繼承:基類中的公有成員在派生類中為私有;C++基類中的保護成員在派生類中為私有;基類中的私有成員在派生類中不可見,僅基類可見。保護繼承:基類中的公有成員在派生類中為保護;
C++基類中的保護成員在派生類中為保護;基類中的私有成員在派生類中不可見,僅C++基類可見。通過繼承機制,派生類繼承了基類的成員,所繼承的成員只屬於派生類。即基類和派生類各有一份這樣的成員,這點很重要。接下來,我們不慌看繼承,回到類來看:(個人理解所謂可見性即是調用權限!)
接下來,我們不慌看繼承,回到類來看:
- #include《iostream》
- using namespace std;
- class A{
- public:
- void dump()const{....}
- protected:
- void get_x(){x++;}
- private:
- int x;
- };
- class B:public A
- {
- public:
- void get(){ get_x();}
- /* void get_y(){ y=x;} */
- void compare(A &a){ a.get_x();}
- protected:
- void set(){...}
- private:
- int y;
- };
- int main()
- {
於是我們知道,在派生類不可見的成員並不是不可訪問的,可以通過間接的方式訪問!總結上面的,做了一張表:(注:派生類中成員的可見性是指繼承來的和自身添加的成員。
成員
C++基類類)
派生類
main
私有數據
可見
不可見
不可見
私有函數
可見
不可見
不可見
保護數據
可見
可見
不可見
保護函數
可見
可見
不可見
公有數據
可見
可見
可見
公有函數
可見
可見
可見