多继承 – C++快速入门28

多继承

让编程改变世界

Change the world by program

多继承

多继承(multiple inheritance)可能是面向对象编程技术中最惹人争议的功能了。

这个概念乍看起来很简单,但它可能引起一些难以预料的后果。

因此,JAVA 和 C# 等面向对象编程语言大都只支持多继承的最简单的版本。

但鱼油们稍安勿躁,只要办法得当,只要心中默念小甲鱼我爱你,多继承就可以让你更轻松进行编程。接下来,小甲鱼将告诉你应该怎样做!

什么时候需要用到多继承?

只要你遇到的问题无法只用一个”是一个”关系来描述的时候,就是多继承出场的时候。

举个栗子:在学校里有老师和学生,他们都是人(Person),我们可以用”老师是人”和”学生是人”语法来描述这种情况。

从面相对象编程角度上来看,我么应该创建一个名为 Person 的基类和两个名为 Teacher 和 Student 的子类,后两者是从前者继承来的。

问题来了:有一部分学生还教课挣钱(助教),该怎么办?

酱紫就存在了既是老师又是学生的复杂关系,也就是同时存在着两个”是一个”关系。

我们需要写一个 TeschingStudent 类让它同时继承 Teacher 类和 Student 类,换句话说,就是需要使用多继承。

基本语法:

class TeachingStudent : public Student, public Teacher

{

}

下边我们写个示例演示一下这个多继承的模型!

要求:创建一个由 Person, Teacher, Student 和 TeachingStudent 构成的类层次结构。

Example:example.cpp(课件及源代码)

一些需要注意的地方

在使用多继承的时候,一定要特别注意继承了基类的多少个副本。

在使用多继承的时候,最安全最简明的做法是从没有任何属性且只有抽象方法的类开始继承。

按照上边这么做可以让你远离后代子类可能拥有好几个基类属性的问题。

这样的类又叫做接口(interface)。

视频下载

备用视频下载
技术, IT技术, CPP, 视频教程


风险提示及免责条款

市场有风险,投资需谨慎。本文不构成个人投资建议,也未考虑到个别用户特殊的投资目标、财务状况或需要。用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部