C++ Program to Demonstrate use of Protected Members in Inheritance

bookmark

#include <iostream>
 
class Base {
    private:
        int i;
    protected:
        int j;
    public:
        int k;
        Base(int ii = 0, int jj = 1, int kk = 2) : i(ii), j(jj), k(kk) { }
        void printData() {
            std::cout << "i (Private) = " << i << std::endl
                      << "j (Protected) = " << j << std::endl
                      << "k (Public) = " << k << std::endl;
        }
};
 
class Derived : public Base {
    public:
        void changeData(void)
        {
            //Can access public and protected members in derived class
            j++;
            k++;
            // But i++ show error
        }
};
 
int main()
{
    Derived d;
 
    std::cout << "Before changing " << std::endl;
    d.printData();
    d.changeData();
    std::cout << "After changing " << std::endl;
    d.printData();
}

 

Output:
Before changing 
i (Private) = 0
j (Protected) = 1
k (Public) = 2
After changing 
i (Private) = 0
j (Protected) = 2
k (Public) = 3