【C++每日一练】05 C++类与继承

论坛 期权论坛 期权     
三人行ToCode   2019-7-28 23:29   2583   0
大家好,三人行ToCode的第一个专栏【C++每日一练】正式开通。在这个专栏中,我们会每天一更,带大家学习C++,每次更新的内容一般都是1-2个知识点,希望能帮助您更好的掌握这门编程语言。


【C++每日一练】专栏第五讲我们来聊下C++中面向对象思想特征之一的继承问题。

作者 | 汤兴旺

编辑 | 汤兴旺



1 继承的基本概念
在C++中,继承的概念其实也好理解,它其实和我们生活中常常见到的家产继承一样。在C++中,继承是指在原有的类的基础上建立的新的类,称为继承。被继承的类称为基类(父类),新生成的类称为派生类(子类)。


从上面继承的概念我们也明白继承实际上是类与类之间的关系。可以理解为就是类设计层次的代码复用。通过已有的数据类型来定义新的数据类型,所定义的新的数据类型不仅拥有新定义的成员,而且还拥有旧的成员。也就是例如类B继承于类A,那么B拥有A的成员变量和成员函数。

2 继承语法
在第1节中我们也简单说了继承的基本概念,现在我们看看在类中继承的语法。


在C++中,继承的语法如下:
class 派生类名 :继承方式  基类名
{
访问权限:属性/行为
};
对于继承方式通常有公有继承(public)、私有继承(private)、保护继承(protected)三种,对于类来说,如果不写继承方式则为私有继承。


由于在C++的类中,基类有自己的访问权限,而子类继承基类时又会有继承权限。所以在C++中要想判断一个变量能否被访问,还是比较复杂的,通常我们可以参考下图这个C++中子类对外访问属性表来判断类中的属性或者方法能否被访问。

现在我来解释下这个表的含义,如果为public则代码不管是类内(包括子类)还是类外都可以访问,如果是protected则类外不可以访问,只能在类内访问(包括子类)。如果是private则类外不可以访问,类内只能在这个类本身的内部可以访问,其子类不能访问。


实际上,对于上面这个表,我们可以用个公式来记。如下:我们假设public、protected、private的级别是依次增加的,即public
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:20
帖子:4
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP