千家信息网

C++继承方式的示例分析

发表于:2024-12-12 作者:千家信息网编辑
千家信息网最后更新 2024年12月12日,这篇文章给大家介绍C++继承方式的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++支持多种程序设计风格,其中就包括对面向对象设计的支持。我们今天在这里将会为大家详细介
千家信息网最后更新 2024年12月12日C++继承方式的示例分析

这篇文章给大家介绍C++继承方式的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

C++支持多种程序设计风格,其中就包括对面向对象设计的支持。我们今天在这里将会为大家详细介绍一下各种C++继承方式的具体应用方法,希望能够帮助大家对这方面的知识有一个深入的认识。

C++继承方式总共分为以下几种:

public、private、protected三种(它们直接影响到派生类的成员、及其对象对基类成员访问的规则)。

(1)public(公有继承):继承时保持基类中各成员属性不变,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象只能访问基类中的public成员。

(2)private(私有继承):继承时基类中各成员属性均变为private,并且基类中private成员被隐藏。派生类的成员也只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。

(3)protected(保护性继承):继承时基类中各成员属性均变为protected,并且基类中private成员被隐藏。派生类的成员只能访问基类中的public/protected成员,而不能访问private成员;派生类的对象不能访问基类中的任何的成员。

C++继承方式应用方式代码示例:

  1. #include < iostream>

  2. using namespace std;

  3. class Base

  4. {

  5. public://公有的

  6. int a1;

  7. virtual void test() = 0;

  8. protected://受保护的

  9. int a2;

  10. private://私有的

  11. int a3;

  12. };

  13. class ProtectedClass:protected Base//保护继承

  14. {

  15. public:

  16. void test()

  17. {

  18. a1 = 1;//a1在这里被转变为protected

  19. a2 = 2;//a2在这里被转变为protected

  20. //a3=3;//错误,派生类不能访问基类的私有成员

  21. }

  22. };

  23. class ControlProtectedClass:public ProtectedClass
    //以public方式继承ProtectedClass类

  24. {

  25. public:

  26. void test()

  27. {

  28. a1 = 1;//a1在这里仍然保持为a1在这里被转变为protected

  29. a2 = 2;//a2在这里仍然保持为a1在这里被转变为protected

  30. //a3=3;//错误,由于Base类成员为私有的,即使是上级父类是保护继承,
    也不能改变Base类成员的控制类型

  31. }

  32. };

  33. class PrivateClass:private Base//私有继承

  34. {

  35. public:

  36. void test()

  37. {

  38. a1 = 1;//a1在这里被转变为private

  39. a2 = 2;//a2在这里被转变为private

  40. //a3=3;//错误,基类私有成员对文件区域与派生类区域都是不可访问的

  41. }

  42. };

  43. class ControlPrivateClass:public PrivateClass
    //以public方式继承PrivateClass类

  44. {

  45. public:

  46. void test()

  47. {

  48. //a1=1;//错误,由于基类PrivateClass为私有继承,a1已经转变为private

  49. //a2=2;//错误,由于基类PrivateClass为私有继承,a1已经转变为private

  50. //a3=3;//错误,由于Base类成员为私有的,PrivateClass类也为私有继承

  51. }

  52. };

  53. class PublicClass:public Base
    //共有继承有区别与其它方式的继承,继承后的各成员不会其改变控制方式

  54. {

  55. public:

  56. void test()

  57. {

  58. a1 = 1;//a1仍然保持public

  59. a2 = 2;//a2仍然保持protected

  60. //a3=3;//错误,派生类不能操作基类的私有成员

  61. }

  62. };

  63. class ControlPublicClass:public PublicClass//以public方式继承PublicClass类

  64. {

  65. public:

  66. void test()

  67. {

  68. a1 = 1;//a1仍然保持public

  69. a2 = 2;//a2仍然保持protected

  70. //a3=3;//错误,由于Base类成员为私有成员,即使是上级父类是公有继承,
    也不能改变Base类成员的控制类型

  71. }

  72. };

  73. int main()

  74. {

  75. system("pause");

  76. }

认真看完了C++继承方式的应用例子,相信细心的读者对于共有继承、保护继承与私有继承的区别与特点已经了解,***再提醒一下读者,在继承关系中,基类的private成员不但对应用程序隐藏,即使是派生类也是隐藏不可访问的,而基类的保护成员只对应用程序隐藏,对于派生类来说是不隐藏的,保护继承与私有继承在实际编程工作中使用是极其少见的,他们只在技术理论上有意义。

关于C++继承方式的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

成员 私有 方式 错误 C++ 保护 对象 应用 示例 属性 程序 帮助 控制 分析 上级 内容 区域 应用程序 更多 知识 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 谭权 公安部网络安全 服务器整机速度 sql查询数据库表格性别 计算机网络技术需要考啥证 生成不同数据库的表结构的脚本 关于互联网未来科技论文 sql数据库恢复出现状态 中兴通讯软件开发笔试考题 想买三台服务器做云计算实验 文化艺术人才资料数据库官网 浙江倚宿网络技术有限公司 梦幻大唐官府服务器和红叶香山 国内的软件开发水平 燃烧的远征老黑在哪个服务器 数据库l属性怎么判断 肇庆加时代网络技术 深圳中粮科技工业互联网 北京工行软件开发部怎样 个人软件开发郑重承诺 交银企服软件开发待遇 最多跑一次 网络技术问题 网络安全共创共享主题海报 数据库3级题型 数据库审计在安全行业的地位 数据库查询和数据操纵实验 免流服务器配置要求 互联网科技产品移动支付 idrac 多服务器管理 软件开发工作演讲主题 江苏租赁管理软件开发公司
0