What is a virtual base class?

Answer Posted / raj randhawa

Suppose you have two derived classes B and C that have a
common base class A, and you also have another class D that
inherits from B and C. You can declare the base class A as
virtual to ensure that B and C share the same subobject of
A.

In the following example, an object of class D has two
distinct subobjects of class L, one through class B1 and
another through class B2. You can use the keyword virtual
in front of the base class specifiers in the base lists of
classes B1 and B2 to indicate that only one subobject of
type L, shared by class B1 and class B2, exists.

For example:






class L { /* ... */ }; // indirect base class
class B1 : virtual public L { /* ... */ };
class B2 : virtual public L { /* ... */ };
class D : public B1, public B2 { /* ... */ }; // valid

Using the keyword virtual in this example ensures that an
object of class D inherits only one subobject of class L.

Is This Answer Correct ?    5 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What is a modifier in c++?

634


What kind of problems does name mangling cause?

588


How to reverse a string in C++

357


Is recursion allowed in inline functions?

611


What is the cout in c++?

554






What is polymorphism in oop example?

518


Is there a sort function in c++?

552


What are its advantages and disadvantages of multiple inheritances (virtual inheritance)?

606


Which one is a preferred language C or C++? Why?

621


What is a storage class used in c++?

618


How much is c++ certification?

589


How are virtual functions implemented in c++?

605


What is the use of default constructor?

571


What is the use of endl?

550


What is the use of stl?

639