C++中的私有继乘

       昨晚阅读Gof设计模式时,提到Adapter(适配器)有两种,分别为类适配器象适配器。其中表明类适配器采用多重继承适配接口。类适配器的关键是用一个分支继承接口,而用另外一个分支继承接口的实现部分。C++中作出这一个区分的方法是:用公共方式继承接口;用私有方式继承接口实现。就借此机会复习一下C++中的私有继承吧!

     通过在基类表中去掉public或者显示的声明private,可以私有的继承基类。当私有继承时,创建的新类有基类的所有数据和功能,但是这些功能是隐藏的所以它只是内部实现部分。该类的对象访问不到这些内部功能,并且一个对象不被看作这个基类的成员。当私有继承时,基类的所有public成员都变成了private。如果希望它们中的任何一个是可视的,只有用派生类的public选项申明它们的名字即可。

    class base1
   {
     public:
       char f() const { return 'a';} //内联函数,const成员函数
       int g() const  {return 2;}
       float h() const {return 3.0;}
   };

  class derived : private base1
  {
    public:
      base1::f; //将私有继承成员公有化
  };

  int main(void)
  {
    derived d;
    d.f();    //可以调用,因为被该私有成员被公有化了
    //d.h();  //不能调用,因为是私有函数,不能通过对象来调用
   
    return 0;
 }

 

      

   

   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值