C++继承(一)继承的格式与三种不同继承方式, 三种继承的示意图,简单继承案例说明继承作用 ,

目录

目录:

一:继承的格式与三种不同继承方式

1.1:继承格式

1.2:公共继承。

1.3:保护继承和私有继承

二:继承作用(简单继承案例)

2.1:继承的简单案例:

2.2:解决方法:

2.3:案例测试:


一:继承的格式与三种不同继承方式

1.1:继承格式

继承的基本格式    class (子类名称):(继承方式)(父类名称)

 继承方式分为:1:公共继承(public)2:保护继承(protected)3:私有继承(private)

1.2:公共继承。

我们通常会说,父类中的私有属性不能被子类继承,子类只能继承父类的公共属性和保护属性。但是我们通过下面的案例可以看到,子类继承父类后,使用sizeof计算子类的空间大小时,得到的结果是12字节所以本质上来说,其实子类会将父类的所有成员属性全部继承下来,只不过父类的私有属性,子类对象是访问不到的。

下面我们通过实例化一个son1类对象来深入了解一下公共继承

可以看到,公共继承下来的子类对象,不能在类外直接访问成员属性b的,因为b在父类中声明时是属于保护权限下的(可以在类内或者通过友元访问,但是在类外不能访问)。 但是对于父类中属于公共权限下的a,子类对象是可以直接在类外访问的。

这就说明,在使用公共继承后,父类中的公共属性,在子类中也属于公共属性,父类中的保护属性,在子类中也属于保护属性。

1.3:保护继承和私有继承

其实这两种继承方式与公共继承是完全相同的,他们也都会将父类中的所有属性全部继承下来。他们的区别在于,继承下来后,父类中的成员属性在子类中会根据继承方式不同而不同

三种继承的示意图

 对于公共继承,我们在上面已经说明过了。

那么对于保护继承来说,子类保护继承于父类后,会将父类中的公共属性与保护属性下的数据都继承到他自己的保护权限下。

对于私有继承来说:子类会将父类中所有的属性全都继承到子类的私有权限下。

当然大多数情况下使用的都是公共继承。

二:继承作用(简单继承案例)

作用:继承所表达的是不同类之间的关系,这种关系使得对象可以继承另外一个类对象的特征与能力。主要作用就是避免公用代码的重复开发,减少代码和数据的重复性。

下面我们通过一个简单案例来了解一下继承的作用。

2.1:继承的简单案例:

我们构建一个学生类,和一个老师类

可以看到,这两个类中出现了许多的重复代码,(数据类型一样,表达的含义也相似)。对于这种情况,使用继承就可以很好的解决代码重复性开发问题。

2.2:解决方法:

我们可以从这两个类中,提取出他们的公共属性,构造一个新的基础类,然后让这两个类继承这个基础类就可以了。

1.3:案例测试:

我们让老师类公有继承了这个基础类后,直接实例化一个老师类的对象,可以看到,他里面也出现了基础类中的所有公共属性。(可我们在老师类中,并没有去创造这些属性)。这就是继承的作用。

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中,继承方式主要有三种:公有继承私有继承和保护继承。 1. 公有继承(public inheritance) 公有继承是最常用的一种继承方式。在公有继承中,基类的公有成员和保护成员都成为派生类的公有成员和保护成员,而基类的私有成员仍然是私有的,不能被派生类直接访问。公有继承可以实现基类向派生类的类型转换,也可以实现多态。 示例代码: ```c++ class Base { public: int public_member; protected: int protected_member; private: int private_member; }; class Derived : public Base { // 在Derived中public_member和protected_member都是公有成员 }; ``` 2. 私有继承(private inheritance) 私有继承是一种较少使用的继承方式。在私有继承中,基类的公有成员、保护成员和私有成员都成为派生类的私有成员,不能被外部访问。私有继承主要用于实现代码重用,而不是为了建立类型之间的关系。 示例代码: ```c++ class Base { public: int public_member; protected: int protected_member; private: int private_member; }; class Derived : private Base { // 在Derived中public_member、protected_member和private_member都是私有成员 }; ``` 3. 保护继承(protected inheritance) 保护继承是介于公有继承私有继承之间的一种继承方式。在保护继承中,基类的公有成员和保护成员都成为派生类的保护成员,而基类的私有成员仍然是私有的,不能被派生类直接访问。保护继承主要用于实现类与类之间的组合关系。 示例代码: ```c++ class Base { public: int public_member; protected: int protected_member; private: int private_member; }; class Derived : protected Base { // 在Derived中public_member和protected_member都是保护成员 }; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值