C++中public,protected,private访问小结

=================================================
已知3个类O、P和Q,类O中定义了一个私有方法F1、一个公有方法F2和一个受保护的方法F3:类P和类Q是类O的派生类,其继承方式如下所示:
class P : protected O {…};
class Q : public O {…};
关于方法F1的描述中正确的是___(34)___;关于方法F2的描述中正确的是___(35)___;关于方法F3的描述中正确的是___(36)___。
(34)
A.方法F1无法被访问
B.只有在类O内才能访问方法F1
C.只有在类P内才能访问方法F1
D.只有在类Q内才能访问方法F1
(35)
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.类0和Q的对象都可以访问方法F3
D.类P和Q的对象都可以访问方法F3。
==================================================
该题目涉及到两个知识点:
第一:private,public,protected方法的访问范围.
private: 只能由该类中的成员函数和友员访问,不能被该类的对象访问;
protected: 可以被该类中的成员函数和其友元函数访问,以及由该类的派生类的成员函数和友元使用,但不能被该类的对象访问;
public: 可以被该类中的成员函数和其友元函数访问,以及由该类的派生类的成员函数和友元使用,,也可以由该类的对象访问.
第二:类的继承后方法属性变化:
使用private继承,父类的所有方法在子类中变为private;
使用protected继承,父类的protected和public方法在子类中变为protected,private方法不变;
使用public继承,父类中的方法属性不发生改变;
由上面两个分析,不难得出上述问题的正确答案:
(34) B 私有方法只能在本类中访问,子类继承父类的共有,保护方法,但不能访问父类的私有方法;
(35) C 公有方法可以被类的对象访问,但使用protected继承后,子类中的方法都为保护方法,不能被该子类的对象访问,使用public继承子类对象可以访问子类中的公有方法;
(36) B protected方法不能被自类的对象访问;子类采用protected和public方法继承,父类中protected方法仍然为protected方法,无法使用子类的对象访问,同时父类本身的对象也无法访问;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值