C++多继承中虚基类

原创 2016年06月01日 17:37:08

C++中多继承时,派生类难免继承两个或多个基类的同名函数,因此,对于派生类对象调用同名函数时便产生了二义性(该对象不知道到底调用来自于哪一个直接基类的函数)。解决办法:虚基类

虚基类使得从多个类派生出的对象只继承一个基类对象,而此时,从多个类派生出的派生类必须定义每一个同名函数,否则编译时报错。见P556。


C++中基类是虚基类时,禁止信息通过中间类将参数自动传递给基类构造函数。因此,如果不在派生类的派生类初始化列表中直接调用虚基类的构造函数,那么,编译器将会调用虚基类的默认构造函数初始化基类部分的数据成员。

c++多继承与虚基类

转载自:http://blog.csdn.net/insistgogo/article/details/6653301 多继承的定义:派生类的基类大于一个 语法: [...
  • liguohanhaha
  • liguohanhaha
  • 2016年04月11日 20:26
  • 540

c++继承之虚基类

虚基类的概念:        若在多继承派生类中继承的基类再拥有一个公共基类,则这个公共基类会在多继承派生类的对象中产生多个公共基类子对象,如果要使这个公共基类再多继承派生类中只产生一个基类子对象,则...
  • erlian1992
  • erlian1992
  • 2015年03月11日 20:56
  • 1188

<C++略识>之多重继承、多继承、虚继承

问题:什么是多重继承? 定义三个类:人、士兵、步兵,则有:步兵士兵人,这样的关系称之为多重继承,写法如下:class Person { }; classSoldier:publicPerson ...
  • u013003827
  • u013003827
  • 2016年07月22日 22:29
  • 3375

C++虚基类的作用、用法和意义

教科书上面对C++虚基类的描述玄而又玄,名曰“共享继承”,名曰“各派生类的对象共享基类的的一个拷贝”,其实说白了就是解决多重多级继承造成的二义性问题。例如有基类B,从B派生出C和D,然后类F又同时继承...
  • Leonard_wang
  • Leonard_wang
  • 2012年11月07日 21:15
  • 26387

C++ 虚基类简单使用

1、概述        虚基类是用关键字virtual声明继承的父类,即便该基类在多条链路上被一个子类继承,但是该子类中只包含一个该虚基类的备份,这也是虚基类的作用所在。        正是由于虚...
  • geniusluzh
  • geniusluzh
  • 2012年12月30日 11:41
  • 2660

C++虚基类和多继承

1、首先虚基类解决的是什么问题? 如果一个子类继承的父类不止一个的时候,比如一个子类会继承两个父类。如 class A { private: int x; } class B { p...
  • weixin_37871174
  • weixin_37871174
  • 2017年09月24日 15:33
  • 59

C++ 多继承与虚基类

转载来自:CSDN insistGoGo  (http://blog.csdn.net/insistgogo) 多继承的定义:派生类的基类大于一个 语法: [cpp] view p...
  • txl16211
  • txl16211
  • 2015年03月30日 22:49
  • 594

C++ 虚基类的初始化

如果一个派生类有多个基类,而这些直接基类又有一个共同的基类,则在最终的派生类中会保留该间接数据成员的多份同名成员。 使用虚基类可使最终的派生类只保留共同基类的一份同名成员。 一般情况下,派生类的构造函...
  • u012659423
  • u012659423
  • 2015年04月23日 10:47
  • 797

C++多继承和虚基类

本文属学习笔记,如有错误,欢迎拍砖!在上一篇《C++和Java的多继承》中我们说到了c++多继承中如果子类D的父类中有两个或两个以上(如父类B,C)又继承自一个类(如A,那么在子类D中访问继承得来的属...
  • sycflash
  • sycflash
  • 2010年03月17日 09:03
  • 751

C++多继承与虚基类

》多继承中的二义性问题         在派生类中对基类成员的访问应该是唯一的。但是,在多继承情况下,可能造成对基类中某个成员的访问出现了不唯一的情况,这时就称对基类成员的访问产生了二义性。   ...
  • darkxiaoming
  • darkxiaoming
  • 2017年04月22日 15:29
  • 257
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C++多继承中虚基类
举报原因:
原因补充:

(最多只允许输入30个字)