首页 > 试题广场 >

简述C++中虚继承的作用及底层实现原理?

[问答题]
简述C++中虚继承的作用及底层实现原理?
虚继承用于解决多继承条件下的菱形继承问题,底层实现原理与编译器相关,一般通过虚基类 指针实现,即各对象中只保存一份父类的对象,多继承时通过虚基类指针引用该公共对象,从而避 免菱形继承中的二义性问题。
发表于 2015-05-05 14:31:43 回复(0)
作用:为了解决从不同途径继承来的同名的数据成员在内存中有不同的拷贝造成数据不一致问题,将共同基类设置为虚基类。
这时从不同的路径继承过来的同名数据成员在内存中就只有一个拷贝,同一个函数名也只有一个映射。这样不仅就解决
了二义性问题,也节省了内存,避免了数据不一致的问题。
底层实现原理:底层实现原理与编译器相关,一般通过虚基类指针实现,即各对象中只保存一份父类的对象,多继承时通过
虚基类指针引用该公共对象,从而避免菱形继承中的二义性问题。
发表于 2015-07-11 10:36:58 回复(0)
作用:解决多重继承同名数据的成员的二义性问题。将共同的基类设定为虚继承,可以让同名数据成员只有一份拷贝。
原理:在各个派生类的对象中只保留一个基类对象实体,并有一个指针指向这个对象
发表于 2015-06-06 10:18:24 回复(0)