Q:

C++ Program to illustrates the use of Virtual base class

belongs to collection: C++ Polymorphism Solved Programs

0

Write a C++ Program to illustrates the use of Virtual base class. Here’s a Simple C++ Program to illustrates the use of Virtual base class in C++ Programming Language.

What is Polymorphism in C++ ?

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

The word polymorphism means having many forms. Typically, polymorphism occurs when there is a hierarchy of classes and they are related by inheritance.

 
 

C++ polymorphism means that a call to a member function will cause a different function to be executed depending on the type of object that invokes the function.


Virtual Function : :


A virtual function is a function in a base class that is declared using the keyword virtual. Defining in a base class a virtual function, with another version in a derived class, signals to the compiler that we don’t want static linkage for this function.


Below is the source code for C++ Program to illustrates the use of Virtual base class which is successfully compiled and run on Windows System to produce desired output as shown below :

 

SOURCE CODE : :

/*  C++ Program to illustrates the use of Virtual base class  */

#include<iostream>
using namespace std;
// This program illustrates the use of the virtual base clas
class B  // Base class
{
                protected:
                        int base_data ;
                public:
                        void get_b_data(int b)
                        {
                                cout << "\n\n Accessing the data from the base class B------------>" ;
                                base_data = b ;
                        }
                        void display_b_data(void)
                        {
                                cout << "\n base_data = " << base_data ;
                        }
};
class D1 : virtual public B  // First virtual base class.
{                                        // This class is derived from the class B.
                protected:
                        int der1_data ;
                public:
                        void get_d1_data(int d1)
                        {
                                cout << "\n\n Accessing the data from the derived class D1---------->" ;
                                der1_data = d1 ;
                        }
                        void display_d1_data(void)
                        {
                                cout << "\n der1_data = " << der1_data ;
                        }
};

class D2 : virtual public B // Second virtual base class.
{                                       // This class is also derived from the class B.
                protected:
                        int der2_data ;
                public:
                        void get_d2_data(int d2)
                        {
                                cout << "\n\n Accessing the data from the derived class D2---------->" ;
                                der2_data = d2 ;
                        }
                        void display_d2_data(void)
                        {
                                cout << "\n der2_data = " << der2_data ;
                        }
};
class D3 : public D1, public D2 // This class inherits the properties of the
{                                                   // classes B, D1 and D2.
                public:
                        int der3_data ;
                public:
                        void get_d3_data(int d3)
                        {
                                cout << "\n\n Accessing the data from the derived class D3---------->" ;
                                der3_data = d3 ;
                        }
                        void display_d3_data(void)
                        {
                                cout << "\n der3_data = " << der3_data ;
                        }
};

int main()
{
        D3 der3 ;  // Object of the class D3.
        der3.get_b_data(7);    // Accessing the member functions of the base class B.
        der3.display_b_data( ) ;
        der3.get_d1_data(8) ; // Accessing the member functions of the class D1.
        der3.display_d1_data( );
        der3.get_d2_data(18) ; // Accessing the member functions of the class D2.
        der3.display_d2_data( );
        der3.get_d3_data(15); // Accessing the member functions from its own class D3.
        der3.display_d3_data( );
return 0;
}

OUTPUT : :


/*  C++ Program to illustrates the use of Virtual base class  */

 Accessing the data from the base class B------------>
 base_data = 7

 Accessing the data from the derived class D1---------->
 der1_data = 8

 Accessing the data from the derived class D2---------->
 der2_data = 18

 Accessing the data from the derived class D3---------->
 der3_data = 15

Process returned 0

Above is the source code and output for C++ Program to illustrates the use of Virtual base class which is successfully compiled and run on Windows System to produce desired output.

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

C++ Program to show an Example of Pointers to base... >>
<< C++ Program to define an Abstract Class in Polymor...