介绍
本篇内容主要讲解“C语言和c++中多重继承的优缺点以及用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言和c++中多重继承的优缺点以及用法介绍”吧!
<编辑类="目录">目录编辑>- <李>
概述
李> <李>优缺点
李>- <李>
优点
李> <李>缺点
李>声明多重继承的方法
李>- <李>
格式
李> <李>例子
李>二义性
李>- <李>
两个基类有同名成员
李> <李>基类和派生类有同名成员
李> <李>两个基类从同一个基类派生
李>概述
多重继承(多重继承):一个派生类有两个或多个基类,派生类从两个或多个基类中继承所需的属性。c++为了适应这种情况,允许一个派生类同时继承多个基类。这种行为称为多重继承。
优缺点
优点
- <李>
自然地做到了对单继承的扩展
李> <李>可以继承多个类的功能
李>缺点
- <李>
结构复杂化
李> <李>优先顺序模糊
李> <李>功能冲突
李>声明多重继承的方法
格式
多重继承的格式:
派生类构造函数名(总形式参数表列):, ,,,基类1构造函数(实际参数表列), ,,,基类2构造函数(实际参数表列), ,,,基类3构造函数(实际参数表列) { ,,,派生类中新增数成员据成员初始化语句 }
例子
老师类:
# ifndef PROJECT5_TEACHER_H # define PROJECT5_TEACHER_H # include & lt; string> using namespace 性传播疾病; class Teacher  { 保护: ,,,string 名称; ,,,int 年龄; ,,,string 标题; 公众: ,,,老师(string n, int ,, string t); ,,,void display_teacher (); }; # endif //PROJECT5_TEACHER_H
老师。cpp:
# include & lt; iostream> # include “Teacher.h" using namespace 性传播疾病; 老师::老师(string n, int ,, string t),:,名称(n), (a)岁,标题(t), {} void 老师::display_teacher (), { ,,,cout & lt; & lt;,“Teacher 名称:,“,& lt; & lt;, name & lt; & lt;, endl; ,,,cout & lt; & lt;,“年龄:,“,& lt; & lt;, age & lt; & lt;, endl; ,,,cout & lt; & lt;,“标题:,“,& lt; & lt;, title & lt; & lt;, endl; }
学生类:
# ifndef PROJECT5_STUDENT_H # define PROJECT5_STUDENT_H # include & lt; string> using namespace 性传播疾病; class Student  { 保护: ,,,string 名称; ,,,char 性别; ,,,double 分数; 公众: ,,,的学生(string n, char g, double s); ,,,void display_student (); }; # endif //PROJECT5_STUDENT_H
学生。cpp:
# include & lt; iostream> # include “Student.h" using namespace 性传播疾病; 学生:学生(string n, char g, double s),:,名称(n),性别(g),得分(s), {} void 学生::display_student (), { ,,,cout & lt; & lt;,“Student 名称:,“,& lt; & lt;, name & lt; & lt;, endl; ,,,cout & lt; & lt;,“性别:,“,& lt; & lt;, gender & lt; & lt;, endl; ,,,cout & lt; & lt;,“分数:,“,& lt; & lt;, score & lt; & lt;, endl; }
研究生类:
# ifndef PROJECT5_GRADUATE_H # define PROJECT5_GRADUATE_H # include “Teacher.h" # include “Student.h" # include & lt; string> using namespace 性传播疾病; class Graduate : public 老师,,public 学生{ 私人: ,,,double 工资; 公众: ,,,毕业(string t_n, int t_a,, string t_t,, string s_n,, char s_g,, double s_); ,,,void display_graduate (); }; # endif //PROJECT5_GRADUATE_HC语言和c++中多重继承的优缺点以及用法介绍