龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

C++基类说明解析

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
C++通过继承机制,可以利用已有的数据类型来定义新的数据类型,下面文章给出了C++基类来管理内存的完整内存池管理程序和测试程序的源代码,供大家学习切磋。 作为继承,主要有三

C++通过继承机制,可以利用已有的数据类型来定义新的数据类型,下面文章给出了C++基类来管理内存的完整内存池管理程序和测试程序的源代码,供大家学习切磋。

作为继承,主要有三种:公有继承,私有继承(默认继承方式),保护继承。公有继承:基类中的公有成员在派生类中仍公有;基类中的保护成员在派生类中仍保护;基类中的私有成员在派生类中不可见,仅基类可见。

私有继承:基类中的公有成员在派生类中为私有;C++基类中的保护成员在派生类中为私有;基类中的私有成员在派生类中不可见,仅基类可见。保护继承:基类中的公有成员在派生类中为保护;

C++基类中的保护成员在派生类中为保护;基类中的私有成员在派生类中不可见,仅C++基类可见。通过继承机制,派生类继承了基类的成员,所继承的成员只属于派生类。即基类和派生类各有一份这样的成员,这点很重要。接下来,我们不慌看继承,回到类来看:(个人理解所谓可见性即是调用权限!)

接下来,我们不慌看继承,回到类来看:

  1. #include《iostream》  
  2. using namespace std;  
  3. class A{  
  4. public:  
  5. void dump()const{....}  
  6. protected:  
  7. void get_x(){x++;}  
  8. private:  
  9. int x;  
  10. };  
  11. class B:public A  
  12. {  
  13. public:  
  14. void get(){ get_x();}  
  15. /* void get_y(){ y=x;} */  
  16. void compare(A &a){ a.get_x();}  
  17. protected:  
  18. void set(){...}  
  19. private:  
  20. int y;  
  21. };  
  22. int main()  

于是我们知道,在派生类不可见的成员并不是不可访问的,可以通过间接的方式访问!总结上面的,做了一张表:(注:派生类中成员的可见性是指继承来的和自身添加的成员。

成员

C++基类(类)

派生类

main

私有数据

可见

  不可见

  不可见

私有函数

  可见

  不可见

  不可见

保护数据

  可见

  可见

不可见

保护函数

  可见

  可见

  不可见

公有数据

  可见

  可见

  可见

公有函数

  可见

  可见

可见

精彩图集

赞助商链接