在继承中派生类成员的访问权限测试

65 篇文章 0 订阅

派生类对自身基类的private成员没有访问权限,对基类对象的protected成员没有访问权限,对派生类对象的(基类之外)的private和protected成员具有访问权限。

由于C++基础不好,平时也不用它,导致今天才纠正一个非常关键的错误,类的访问权限,是对类而言的,而不是对类的对象而言的。一直都理解错了。这句话都没脸写出来,还是写下来了。

下面是一段简答的测试代码。对于调用成员函数的对象test,基类形参,派生类形参三者的访问权限做了测试如下:

 

 

 

[cpp] view plain copy print ?
 
  1. #include<iostream>
  2. usingnamespacestd;
  3. classbase
  4. {
  5. public:
  6. intpub;
  7. protected:
  8. intpro;
  9. private:
  10. intpri;
  11. };
  12. classderive:publicbase
  13. {
  14. public:
  15. intnewpub;
  16. protected:
  17. intnewpro;
  18. private:
  19. intnewpri;
  20. public:
  21. intfunc(classbasea,classderiveb)
  22. {
  23. //
  24. 自身的基类成员和非基类成员访问权限测试
  25. cout<<newpub<<endl;
  26. cout<<newpro<<endl;
  27. cout<<newpri<<endl;
  28. cout<<pub<<endl;
  29. cout<<pro<<endl;
  30. //noaccesscout<<pri<<endl;
  31. /
  32. 对基类对象访问权限的测试
  33. cout<<a.pub<<endl;
  34. //noaccesscout<<a.pro<<endl;
  35. //noaccesscout<<a.pri<<endl;
  36. /
  37. 对派生类对象的基类以及非基类成员访问权限测试
  38. cout<<b.pub<<endl;
  39. cout<<b.pro<<endl;
  40. //noaccesscout<<b.pri<<endl;
  41. cout<<b.newpub<<endl;
  42. cout<<b.newpro<<endl;
  43. cout<<b.newpri<<endl;
  44. return0;
  45. }
  46. };
  47. intmain()
  48. {
  49. classbasea;
  50. classderiveb;
  51. classderivetest;
  52. test.func(a,b);
  53. return0;
  54. }
 
 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值