C++通过继承机制,可以利用已有的数据类型来定义新的数据类型,下面文章给出了C++基类来管理内存的完整内存池管理程序和测试程序的源代码,供大家学习切磋。
作为继承,主要有三种:公有继承,私有继承(默认继承方式),保护继承。公有继承:基类中的公有成员在派生类中仍公有;基类中的保护成员在派生类中仍保护;基类中的私有成员在派生类中不可见,仅基类可见。#t#
私有继承:基类中的公有成员在派生类中为私有;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 |
私有数据 |
可见 |
不可见 |
不可见 |
私有函数 |
可见 |
不可见 |
不可见 |
保护数据 |
可见 |
可见 |
不可见 |
保护函数 |
可见 |
可见 |
不可见 |
公有数据 |
可见 |
可见 |
可见 |
公有函数 |
可见 |
可见 |
可见 |