What is Virtual Inheritance?
Answers were Sorted based on User's Feedback
Virtual inheritance is used to avoid multiple copies of a
base class in a multiple-inherited object. However, there
are cases where multiple copies of a base are needed in a
derived class. In such cases, virtual inheritance is
intentionally avoided
| Is This Answer Correct ? | 18 Yes | 2 No |
Answer / rakesh kumar
whenever there are two derived class derived from same base
class,when these two derived classes derive third derived
class which contain the properties of the 1st base class
twice.virtual class is use to avoid this.
| Is This Answer Correct ? | 5 Yes | 1 No |
Answer / achal ubbott
The concept of virtual inheritance was evolved to avoid
ambiguity/duplication.
e.g.
class base
{
int value;
};
now we do some multiple inheritance
class A:public base {};
class B:public base {};
Now value is member to both the classes A and B.
Lets have a class C that inherits from both A and B.
class C:public A, public B {};
Now should that mean that C have 2 copies of value as its
data member? Yes and this leads to ambiguity.
So do like this
class C:virtual public A,virtual public B {};
| Is This Answer Correct ? | 5 Yes | 1 No |
Answer / shivachinna
virtual concept is uaed to avoid confusions with same name
of methods in super class as well as sub class.....
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / rama
The duplication of inherited members due to multiple paths can be avoided by making the common base class(ancestor class) as virtual base class..
FOR EXAMPLE
class A //grandparent
{
...
...
};
class B1:virtual public A //parent1
{
...
...
};
class B2:public virtual A //parent2
{
...
...
};
class C :public B1,public B2
{
... //only one copy of A
... //will be inherited
};
When a class is made a virtual base class, it take necessary care to see that only one copy of that class is inherited, regardless of how many inheritance paths exits between the virtual base class and a derived class.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sandeep mannarakkal
Virtual inheritance is used for creating an a class (portion in the derived object ) as first. Once this object portion got created then compiler insert a offset to the remaining portion of the object for identifying the virtual portions.
| Is This Answer Correct ? | 0 Yes | 0 No |
Answer / sharukh khan
Totally wrong answer !
you are fail man !
read some more books !
please read books guys , websites cheats you !
| Is This Answer Correct ? | 3 Yes | 17 No |
How can you specify a class in C++?
In which memory a class gets stored(in heap /in stack)? And why??
i have given a project to create examination seating plan system in c++. so can anyone send me the answer of this question quickly??????
Why would you make a destructor virtual?
Describe exception handling concept with an example?
why and when we can declar member fuction as a private in the class?
What c++ is used for?
string somestring ; Which of the following choices will convert a standard C++ string object "somestring" to a C string? a) Copy.somestring () ; b) somestring.c_str () c) &somestring [1] d) std::cstring (somestring) e) (char *) somestring
Please explain class & object in c++?
Why Pointers are not used in C++?
How do I exit turbo c++?
Which one of the following describes characteristics of "protected" inheritance? a) The base class has access only to the public or protected members of the derived class. b) The derived class has non-public, inheritable, access to all but the private members of the base class. c) The derived class has access to all members of the base class. d) The private members of the base class are visible within the derived class. e) Public members of the derived class are privately accessible from the base class.