C++中提供虚基类是因为:

A.C++支持多重继承,可能导致名字冲突
B.为了实现更加灵活的多态
C.C++不支持接口,故以虚基类作为补充
D.为了基类数据提供更好地保护
单选题

选择A。是因为C++支持多重继承,可能导致名字冲突。
因为基类A可以被多个派生类B1、B2、B3……继承,如果这些派生类再被新的派生类C共同继承,那么在C里就可能存在多个基类A。所以才有虚基类,使得派生类C中只能存在一个基类A。
温馨提示:内容为网友见解,仅供参考
第1个回答  2017-06-17
感觉都不是,现在出题的人都很无聊的,这种东西有什么意义啊?!C看起来最接近

C++中提供虚基类是因为:
选择A。是因为C++支持多重继承,可能导致名字冲突。因为基类A可以被多个派生类B1、B2、B3……继承,如果这些派生类再被新的派生类C共同继承,那么在C里就可能存在多个基类A。所以才有虚基类,使得派生类C中只能存在一个基类A。

C++中设置虚基类的目的是: A:简化程序 B:消除二义性 C:提高运行效率 D...
正解, 虚基类是为了强调"这个类型的某些方法没有意义, 只是为了继承, 不要构造这种类型的对象"C:提高运行效率 和纯虚函数没关系 D:减少目标代码 纯虚函数和空函数相比相差也就是几个字节, 如果这也算的话确实是减少了

什么是虚基类(在C++中)?
在C++中,虚基类是一种特殊类型的基类,其主要作用在于处理多重继承时可能出现的复杂性。当派生类(Derive)通过virtual关键字从一个基类(Base)进行继承时,该基类就会变为虚基类。例如:class derive : virtual public base{}; 使用虚基类的主要目的是避免在多重继承中,同一基类被重复继承导致的混乱。如...

什么是虚基类(在C++中)?
class derive : virtual public base { };虚基类主要解决在多重继承时,基类可能被多次继承,虚基类主要提供一个基类给派生类,如:class B { };class D1 : public B { };class D2 : public B { };class C: public D1, public D2 { };这里C在D1,D2上继承,但有两个基类,造成混乱...

什么是虚基类(在c++中)?
虚基类在C++中的定义 虚基类是一种特殊的类,它在被其他类继承时,允许其它派生类之间形成共同基类的层级结构。虚基类的主要目的是解决多重继承的问题,它可以确保一个基类只在一个派生类中实例化一次,从而避免数据冗余和冲突。在C++中,通过关键字virtual来声明虚基类。当一个类被声明为虚基类时,表明...

C++虚基类
就称为基类。比如类B虚继承于类A,那类A就称作类B的虚基类,如果没有虚继承,那类B就只是类A的基类。虚继承主要用于一个类继承多个类的情况,避免重复继承同一个类两次或多次。例如 由类A派生类B和类C,类D又同时继承类B和类C,这时候类D就要用虚继承的方式避免重复继承类A两次。

C++的虚基类的作用是什么
虚基类的作用是解决在多重继承中重复继承的问题

虚基类不能被实例化吗
而且浪费空间。为了解决这个问题,C++使用了虚基类的概念。当派生类的基类是虚基类时,不管你是多重继承还是单重继承,编译器在编译时,派生类构造函数在调用其基类的构造函数时,都会忽略基类构造函数中对其基类构造函数的调用(又拗口吧),所以,C++规定,在派生类中要显式地调用共同基类的构造函数。

关于C++中用虚基类解决二义性问题
那时因为base类里面没有默认构造函数只有一个复制构造函数。你在base的public成员里面加一个构造函数就行了 base(){};

(c++)为什么进行了虚继承 占用的内存乘2了?
虚继承时,虚基类指针vbptr指向虚基类表vbtable,虚基类表中存放的就是数据相对于虚基类指针的偏移,从而根据偏移找到数据。在vbtable中:0:当前最近作用域的偏移(vbptr的偏移)1:虚继类数据的起始偏移(vbptr的偏移)在VS中查看类的内存布局:方法1:在VS中,项目->属性->C\/C++->命令行中添加\/d...

相似回答
大家正在搜