Abstract Class Program in C++

bookmark

#include <iostream>
using namespace std;
 
class Abstract {
    int i, j;
    public:
        virtual void setData(int i = 0, int j = 0) = 0;
        virtual void printData() = 0;
};
 
class Derived : public Abstract {
    int i, j;
    public:
        Derived(int ii = 0, int jj = 0) : i(ii), j(jj)
        {
            cout << "Creating object " << endl;
        }
        void setData(int ii = 0, int jj = 0)
        {
            i = ii;
            j = jj;
        }
        void printData()
        {
            cout << "Derived::i = " << i << endl
                 << "Derived::j = " << j << endl;
        }
};
 
int main()
{
    // Cannot create an instance of Abstract Class
    // Abstract a;
    Derived d;
 
    cout << "Current data " << endl;
    d.printData();
    d.setData(10, 20);
    cout << "New data " << endl;
    d.printData();
}

 

Output:
Creating object 
Current data 
Derived::i = 0
Derived::j = 0
New data 
Derived::i = 10
Derived::j = 20