C++ 中私有继承的作用

时间:2022-11-10 14:58:04

C++ 中私有继承的作用

私有继承的

第一个规则:和公有继承相反,如果两个类之间的继承关系为私有,编译器一般不会将派生类对象转换成基类对象。

第二个规则: 从私有基类继承而来的成员都成为了派生类的私有成员,即使它们在基类中是保护或公有成员。

私有继承的含义:私有继承意味着 "用...来实现"。

如果使类D私有继承于类B,这样做是因为你想利用类B中已经存在的某些代码,而不是因为类型B的对象和类型D的对象之间有什么概念上的关系。

因而,私有继承纯粹是一种实现技术。

私有继承意味着只是继承实现,接口会被忽略。如果D私有继承于B,就是说D对象在实现中用到了B对象,仅此而已。
私有继承在软件 "设计" 过程中毫无意义,只是在软件 "实现" 时才有用。

1、私有继承的声明形式:    

?
1
2
3
4
5
6
class  Foo  :  private  Bar
 {
    public:
         void  fun();
   //  ...
 }; 

基类的公有和保护成员在派生类里都成为私有成员;承属于is-a关系的一部分,而私有继承属于has-a关系的一部分 

2、在架构上私有继承表达的是一种 'has   a '关系,但与聚合有以下不同:

      私有继承形式可能引入不必要的多重继承   

      私有继承形式允许访问基类的保护(protected)成员   

      私有继承形式允许派生类重写基类的虚函数(多态)

3、尽可能用组合,万不得已才用私有继承

      通常你不会想访问其他类的内部,而私有继承给你这样的一些的特权(和责任)。但是私有继承并不有害。只是由于它增加了别人更改某些东西时,破坏你的代码的可能性,从而使维护的花费更昂贵。

如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

原文链接:http://blog.csdn.net/freeboy1015/article/details/8815924