C语言和c++中多重继承的优缺点以及用法介绍

  介绍

本篇内容主要讲解“C语言和c++中多重继承的优缺点以及用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“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_H

C语言和c++中多重继承的优缺点以及用法介绍