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 |
what is the size of this class class size { public: char data1; double d; int data2; char data3; double data4; short data5; }; please explain the padding for these double variables.
What type of question are asked in GE code writing test based on c++ data structures and pointers?
What is the difference between an array and a list?
What is endl?
Name some pure object oriented languages?
Is rust better than c++?
What is a "RTTI"?
can any one help to find a specific string between html tags which is changed to a sting.. weather.html looks (for location) is <location>somewhere</location> #include <iostream> #include <fstream> #include <string> using namespace std; string find_field(string myPage,string); int main (void) { string page, line, location, temperature; ifstream inputFile("weather.xml"); while(getline(inputFile, line)) { page.append(line); line.erase(); } // Now page is a string that contains the whole xml page // Here you need to write something that finds and // extracts location and temperature from the XML // data in the string page and stores them in // the strings location and temperature respectively location=find_field(page,"location"); temperature=find_field(page,"temp_c"); cout << "Location: "<<location << endl; cout << "Temperature: " << temperature << endl; system("pause"); } string find_field(string myPage,string find_string){ int temp=myPage.find(find_string); if(temp!=string::npos) { cout << "Match found at " << temp << endl; } return "found?"; } ///
List down the guideline that should be followed while using friend function.
Write a program to add three numbers in C++ utilizing classes.
Is it possible to write a c++ template to check for a function's existence?
Can inline functions have a recursion? Give the reason?