C++基類說明解析
C++通過繼承機(jī)制,可以利用已有的數(shù)據(jù)類型來定義新的數(shù)據(jù)類型,下面文章給出了C++基類來管理內(nèi)存的完整內(nèi)存池管理程序和測(cè)試程序的源代碼,供大家學(xué)習(xí)切磋。
作為繼承,主要有三種:公有繼承,私有繼承(默認(rèn)繼承方式),保護(hù)繼承。公有繼承:基類中的公有成員在派生類中仍公有;基類中的保護(hù)成員在派生類中仍保護(hù);基類中的私有成員在派生類中不可見,僅基類可見。#t#
私有繼承:基類中的公有成員在派生類中為私有;C++基類中的保護(hù)成員在派生類中為私有;基類中的私有成員在派生類中不可見,僅基類可見。保護(hù)繼承:基類中的公有成員在派生類中為保護(hù);
C++基類中的保護(hù)成員在派生類中為保護(hù);基類中的私有成員在派生類中不可見,僅C++基類可見。通過繼承機(jī)制,派生類繼承了基類的成員,所繼承的成員只屬于派生類。即基類和派生類各有一份這樣的成員,這點(diǎn)很重要。接下來,我們不慌看繼承,回到類來看:(個(gè)人理解所謂可見性即是調(diào)用權(quán)限!)
接下來,我們不慌看繼承,回到類來看:
- #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()
- {
于是我們知道,在派生類不可見的成員并不是不可訪問的,可以通過間接的方式訪問!總結(jié)上面的,做了一張表:(注:派生類中成員的可見性是指繼承來的和自身添加的成員。
成員 |
C++基類(類) |
派生類 |
main |
私有數(shù)據(jù) |
可見 |
不可見 |
不可見 |
私有函數(shù) |
可見 |
不可見 |
不可見 |
保護(hù)數(shù)據(jù) |
可見 |
可見 |
不可見 |
保護(hù)函數(shù) |
可見 |
可見 |
不可見 |
公有數(shù)據(jù) |
可見 |
可見 |
可見 |
公有函數(shù) |
可見 |
可見 |
可見 |