广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >c++中继承关系的示例分析
  • 481
分享到

c++中继承关系的示例分析

2023-06-20 17:06:08 481人浏览 八月长安
摘要

这篇文章给大家分享的是有关c++中继承关系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 什么是继承继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序

这篇文章给大家分享的是有关c++中继承关系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

1 什么是继承

继承概念

继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。

  面向对象的继承关系指类之间的父子关系。用类图表示如下:

c++中继承关系的示例分析

2 为什么要有继承?/ 继承的意义?

  因为继承是面向对象中代码复用的一种手段。通过继承,可以获取父类的所有功能,也可以在子类中重写父类已有的功能 以及 添加父类中没有的功能。

3如何理解 子类是特殊的父类?

  因为子类不仅继承了父类所有的属性与行为,而且在子类中还可以重写父类已有的功能,以及添加自己的新属性与新方法。这也就是说子类对象可以当作父类对象使用。

4 继承的规则

  1) 子类是特殊的父类

  2) 子类对象可以直接初始化父类对象

  3) 子类对象可以直接赋值给父类对象

5 继承中的访问级别

  1)public:在类的内部和外部都可以访问。

  2)protected::可以在类的内部使用,不可以在类的外部直接使用。,但是存在继承关系时,可以在子类中使用父类的protected的成员。

  3)private:只可以在类的内部使用,不可以在类的外部使用。

  注:类的内部:在当前类的作用域中(不包括子类的作用域);类的外部:类内部之外的作用域(包括子类的作用域)

  问题1:子类是否可以直接访问父类中的private成员(非公有成员)吗?(No)

    1)从面向对象理论的角度分析,可知子类拥有父类一切的属性与行为,得出的结论:Yes

    2)从c++的语法角度分析,可知外界不能访问类的private成员,得出的结论:No

  问题2:谈谈 protected关键字的存在的意义?

    protected关键字是为继承而存在的,这样就可以在子类中访问父类的protected成员,同时还不允许外界直接访问父类中的protected成员。

  问题3:在类中如何选择类的访问级别?--- 见下图

c++中继承关系的示例分析

6 继承中的继承方式

  1)public 继承方式 --- 父类成员在子类中保持原有的访问级别。

  2)protected继承方式 ---父类中的公有成员在子类中变成了protected成员,其它不变。

  3)private 继承方式(默认) --- 父类成员在子类中变成了private成员

   可归纳为:

c++中继承关系的示例分析

    结论:无论选择哪种继承方式,都不会影响子类访问父类成员的级别

  注:1) c++ 工程项目中只使用 public 继承方式;

    2) c++ 派生语言(jave,C#)只支持 public继承方式;

    3)protected、private 继承方式带来的复杂性远大于其实用性;(舍弃不用)

用代码实现类图中的功能:

c++中继承关系的示例分析

  代码如下:

 #include <iOStream>  #include <string>  #include <sstream>    using namespace std;   class Object  {  protected:     string mName;     string mInfo; public:     Object()     {         mName = "Object";         mInfo = "";     }     inline string getName()     {         return mName;     }     inline string getInfo()     {         return mInfo;     } };  class Point : public Object { private:     int mX;     int mY; public:     Point(int x = 0, int y = 0)     {         ostringstream oss;          mX = x;         mY = y;         mName = "Point";                  oss << "Point(" << mX << ", " << mY << ")";         mInfo = oss.str();     }     inline int getX()     {         return mX;     }     inline int getY()     {         return mY;     } };  class Line : public Object { private:     Point mP1;     Point mP2; public:     Line(Point p1, Point p2)     {         mP1 = p1;         mP2 = p2;         mName = "Line";          mInfo = "Line from " + p1.getInfo() + " to " + p2.getInfo();     }     inline Point getStartPoint()     {         return mP1;     }     inline Point getEndPoint()     {         return mP2;     } };  int main(int arGC, char const *argv[]) {     Object obj;     cout << obj.getName() << endl;     cout << obj.getInfo() << endl << endl;      Point p1(1, 2);     Point p2(3, 4);     cout << p1.getName() << endl;     cout << p1.getInfo() << endl;     cout << p2.getName() << endl;     cout << p2.getInfo() << endl << endl;      Line line(p1, p2);     cout << line.getName() << endl;     cout << line.getInfo() << endl << endl;      return 0; }

感谢各位的阅读!关于“c++中继承关系的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: c++中继承关系的示例分析

本文链接: https://www.lsjlt.com/news/298408.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • c++中继承关系的示例分析
    这篇文章给大家分享的是有关c++中继承关系的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 什么是继承继承概念继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序...
    99+
    2023-06-20
  • PHP中类继承关系的示例分析
    这篇文章将为大家详细讲解有关PHP中类继承关系的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。在PHP中,我时常会写一个类,类写了一个共用方法,然后让子类去继承就...
    99+
    2022-10-19
  • C++继承方式的示例分析
    这篇文章给大家介绍C++继承方式的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。C++支持多种程序设计风格,其中就包括对面向对象设计的支持。我们今天在这里将会为大家详细介绍一下各种C++继承方式的具体应用方法,...
    99+
    2023-06-17
  • javascript中继承的示例分析
    这篇文章主要介绍javascript中继承的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!javascript 中的继承实例详解阅读目录原型链继承借用构造函数组合继承寄生组合...
    99+
    2022-10-19
  • js中继承的示例分析
    这篇文章给大家分享的是有关js中继承的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。继承的简介继承”是JavaScript面向对象设计的重要一环,愿你认真读完本文,吃透继...
    99+
    2022-10-19
  • CSS中继承的示例分析
    小编给大家分享一下CSS中继承的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、说明解释   -  ...
    99+
    2022-10-19
  • Angular.JS中Scope继承的示例分析
    这篇文章主要介绍Angular.JS中Scope继承的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!基本原理在JavaScript中,每创建一个构造函数(constructo...
    99+
    2022-10-19
  • c++中的继承关系
    1 什么是继承 继承概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能。这样产生新的类,称...
    99+
    2022-11-12
  • php中有限继承的示例分析
    这篇“php中有限继承的示例分析”除了程序员外大部分人都不太理解,今天小编为了让大家更加理解“php中有限继承的示例分析”,给大家总结了以下内容,具有一定借鉴价值,内容详细步骤清晰,细节处理妥当,希望大家通过这篇文章有所收获,下面让我们一起...
    99+
    2023-06-06
  • javascript中实现继承的示例分析
    小编给大家分享一下javascript中实现继承的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!类式继承//声明父类//声明父类function SuperClass() { &nbs...
    99+
    2023-06-27
  • Mybatis TypeHandler接口及继承关系示例解析
    目录开篇TypeHandler接口TypeHandler继承体系IntegerTypeHandlerDateTypeHandlerTypeHandlerRegistryTypeHan...
    99+
    2023-02-08
    Mybatis TypeHandler接口继承 Mybatis TypeHandler
  • JavaScript原型继承的示例分析
    这篇文章主要介绍JavaScript原型继承的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!在传统的基于Class的语言如Java、C++中,继承的本质是扩展一个已有的Cla...
    99+
    2022-10-19
  • JavaScript组合继承的示例分析
    这篇文章主要为大家展示了“JavaScript组合继承的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript组合继承的示例分析”这篇文章吧。原型链继承父类实例作为子类的原型...
    99+
    2023-06-25
  • 一文读懂C++中的继承之菱形继承(案例分析)
    目录前言一、什么是多继承?1.单继承2.多继承二、菱形继承1.虚基类的引入2.虚基表的引入总结前言 我们上一篇说了世间万物都有一个继承体制,或多或少子类继承了父类的某些特征,但大多都...
    99+
    2022-11-12
  • ES6 javascript中Class类继承的示例分析
    小编给大家分享一下ES6 javascript中Class类继承的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!具体如下:1. 基本用法Class 之间可以通过extends关键字...
    99+
    2022-10-19
  • css中属性值继承的示例分析
    这篇文章主要介绍了css中属性值继承的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。继承:html元素可以从父元素那里继承一部分cs...
    99+
    2022-10-19
  • CSS中级联和继承的示例分析
    这篇文章主要为大家展示了“CSS中级联和继承的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“CSS中级联和继承的示例分析”这篇文章吧。   1.在HT...
    99+
    2022-10-19
  • Java中继承和多态的示例分析
    这篇文章给大家分享的是有关Java中继承和多态的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言首先我们如果要使用Java中存在的包,可以程序中使用import语句导入包。包说通俗点就是一个文件夹,为了...
    99+
    2023-06-20
  • css继承盒模型的示例分析
    这篇文章给大家分享的是有关css继承盒模型的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。继承盒模型让盒模型从html 继承:html {    &nbs...
    99+
    2023-06-27
  • JavaScript中多种组合继承的示例分析
    这篇文章主要为大家展示了“JavaScript中多种组合继承的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“JavaScript中多种组合继承的示例分析...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作