深入浅出c++之private/public/protected

  论坛的一个帖子:  已知3个类o、p和q, 类o中定义了一个私有方法f1、一个公有方法f2和一个受维护的方法f3:类p和类q是类o的派生类, 其继承方式如下所示:  关于方法f1的描绘中正确的是___(34)___;关于方法f2韵描绘中正确的是___(35)___;关于方法f3的描绘中正确的是___(36)___。   a.方法f1无法被拜访  b.只有在类o内才能拜访方法f1  c.只有在类p内才能拜访方法f1  d.只有在类q内才能拜访方法f1  a.类o、p和q的对象都可以拜访方法f2  b.类p和q的对象都可以拜访方法f2  c.类0和q的对象都可以拜访方法f2  d.只有在类p内才能拜访方法f2  (36)a.类0、p和q的对象都可以拜访方法f3  b.类0、p和q的对象都不可以拜访方法f3  C++c.类0和q的对象都可以拜访方法f3  d.类p和q的对象都可以拜访方法f3。   有甚么方法可以简单地记住这许多的规则?下文通知你一个根本不需求记的方法。   可以拜访xxx。 这条规则是:  3)派生类在继承时可削弱成员的拜访权限(经过protected/private修饰)。   补充:有一种技术叫memberspy(类成员特务), 经过该技术派生类可将基类的protected成员修改为public权限。 这种技术用到了using关键字。 举例如下:  //强迫转换a为spya, 这要求spya没有成员变量且没有重载a中的虚函数。   由于这种技术用到了强迫类型转换, 当谨慎使用。

posted on 2011-04-09 04:25  青青啊  阅读(192)  评论(0)    收藏  举报

导航