Virtual Base Class in C++

In a C++ programming language to overcome the ambiguity problem occurred due to multipath inheritance we use “virtual” keyword.

By using the “virtual” keyword we can declares the specified class virtual. 

When a class declared as virtual, then the compiler takes necessary precaution to avoid the duplication of member variable.

We can make a class virtual if it is a base class and is used by more than one derived classes as their base class. 

Example:   Write a program to declare virtual base classes. Derive a class using two virtual base class.

#include 

using namespace std;
class A1 {
    protected: int a1;
};
class A2: public virtual A1 { // virtual declaration 
    protected: int a2;
};
class A3: public virtual A1 { // virtual declaration  
    protected: int a3;
};
class A4: public A2, A3 { // virtual declaration 
    protected: int a4;
    public:
    void getdata() {
        cout << "Enter values of a1, a2, a3, a4";
        cin >> a1 >> a2 >> a3 >> a4;
    }
    void showdata() {
        cout << "values of a1, a2, a3, a4 = ";
        cout << a1 << a2 << a3 << a4;
    }
};
int main() {
    A4 obj;
    obj.getdata();
    obj.showdata();
   return 0;
}

Output

 Enter values of a1, a2, a3, a4	
								              10													 20													 30													 40 												
                values of a1, a2, a3, a4= 10 20 30 40	
 
Categories C++