C语言对象编程第二弹:继承

前言

继承简单说来就是父亲有的东西,孩子可以继承过来。

当创建一个类时,我们不需要重新编写新的数据成员和成员函数,只需指定新建的类继承了一个已有的类的成员即可。

这个已有的类称为基类,新建的类称为派生类

继承在C++ 中还会细分为很多,我们就不考虑那么多了,只分享比较简单也比较实用的。

在C语言对象编程中,有两种方法实现继承:

第一种是:结构体包含结构体实现继承。

第二种是:利用私有指针实现继承。

下面依旧以实例进行分享:

结构体包含结构体

我们以上一篇笔记的例子为例继续展开。上一篇的例子为:

假如我们要操作的对象变为长方体,长方体就可以继承长方形的数据成员和函数,这样就可以复用之前的一些代码。具体操作看代码:

1、结构体

2、头文件

3、长方体对象创建、删除函数

4、操作函数

5、测试及测试结果

可见,长方体结构体可以继承长方形结构体的数据、长方体对象相关操作也可以继承长方形对象的相关操作。这样可以就可以复用上一篇关于长方形对象操作的一些代码,提高了代码复用率。

利用私有指针实现继承

在结构体内部增加一个私有指针成员,这个私有成员可以达到扩展属性的作用,比如以上的Rect结构体设计为:

typedef struct _Rect
{
 char *object_name;
 int length;
 int width;
 void* private; 
}Rect, *pRect;

这个private指针可以在创建对象的时候与其它拓展属性做绑定。比如:

想要拓展的数据为:

带拓展属性的对象创建函数:

显然,使用私有指针也是可以实现继承的一种方式。

不过对于本例来说,使用私有指针来做继承似乎弄得有点混乱,因为长方形的属性大致就是只有长、宽,加了个高之后就不叫长方形了。

这个例子不太适合做演示,越演示越乱。。就不继续演示下去了。我们大概知道有这样一种方法就可以。

结构体里包含一个私有指针成员在很多大牛的代码中经常都有看到,尽管可能不是实现对象继承,所以应尽量掌握。

以上就是本次的分享,如有错误,欢迎指出!

(0)

相关推荐

  • 【C语言更新】结构体中实现函数成员以及回调函数

    文/Edward 前面说,结构体内部的成员变量可以是普通变量,数组,除了这些变量之外,还可以是指针,结构体,枚举,共用体等.综上所述的结构体内部成员中,我们可以发现一个结构体内部的成员竟然不包含函数. ...

  • SUB过程(别怕VBA)

    听过VBA代码吗?羡慕能用代码高效办公的人吧!VBA代码远没有大家想象的那么难,跟着小编学一起学吧! VBA过程就是完成某个任务所需VBA代码的有序组合.VBA中的过程包含子程序过程.函数过程和属性过 ...

  • C 为什么每个对象都有一个虚函数指针?

    首先明确两个概念. ① 虚函数地址存放在虚函数表.多态需要通过虚函数和虚函数表实现. ② 类的对象内部,会有指向类内部的虚表地址指针,这个指针的作用就是调用虚函数.而虚函数的调用,会被编译器转换为对虚 ...

  • C语言对象编程第一弹:封装与抽象

    前言 上次整理了一篇关于面向对象的笔记:<什么是面向对象?>.简单地分享了面向对象的一些基础知识. C语言虽不是面向对象的语言,但也可以使用面向对象的思想来设计我们的程序. C语言 + 面 ...

  • C语言对象编程第三弹:多态

    多态的概念及C++例子 关于多态,之前整理的<什么是面向对象?>这篇文章有说到: 多态按字面的意思就是多种形态.当类之间存在层次结构,并且类之间是通过继承关联时,就会用到多态. 多态意味着 ...

  • 暑期技能养成第二弹:语言学习的终极杀招

    经济不断地发展,我国参与国际性事务越来越多,眼看越来越多的工作机会.学习机会都要求英语能力,家长,你是否为孩子的前途感到十分担忧? 假期已然过半,更繁重的学习就在眼前,给孩子报了许多英语班,天天上来上 ...

  • dnf五一活动第二弹来袭 奖励指南与小游戏攻略

    奖励商店更新与评价 dnf于5月6日更新,五一活动第二弹来袭,新的小游戏骑士酷跑与黑白棋小游戏来临,太阳印章商店更新.新增探索大师与活力彭跑活动,奖励众多,一起来看看哪些需要值得注意的吧! 太阳印章商 ...

  • 热播剧《清平乐》中的高考考点梳理及答案分析第二弹,欢迎收藏

    带你走近还原版大宋<清 / 平/ 乐>文化名人|同聚一朝 大热剧<清平乐>已经被公认为高考文言考点集中地 ,虽然不断有"人设崩塌"之类的剧情被挑刺,但是其中 ...

  • 奥迪特必备网站第二弹

    我们之前的一篇推送里,曾经给大家推荐了奥迪特必备网站TOP8,假装这篇文章受到了大家的热烈欢迎. 这8个必备网站是: TOP 1 国家企业信用信息公司系统 http://www.gsxt.gov.cn ...

  • 4月销量第二弹|东风日产、林肯等品牌传来喜讯,第二季度销量增长稳了?

    ‍‍ 即便处于"五一"假期,不少车企已经公开了上月销量的成绩单,如一汽红旗.蔚来.小鹏等品牌,轱辘哥已经进行了跟踪报道和分析.接下来,轱辘哥则将放出月销量分析第二弹,沃尔沃.林肯. ...

  • 战刀系列丨第二弹

    [法国宪兵特勤战刀] 法国宪兵特勤队(GIGN),是一支专门从事反恐怖活动的特种突击队,号称"凯旋门前的利剑"法国国家宪兵特勤队,诞生于1973年11月3日,号称"凯旋门 ...

  • 京津冀车友都骑什么车?第二弹

    正直春夏之交,恰是骑车出游的好时节,全国车友都纷纷推出爱车,保养做起来,线路规划起来,更不要忘记将您的爱车大保健后,发送给"单车志公众号"晒一晒您的爱车!今天小编就带大家看看&qu ...