inheritance acccess rules

inheritance acccess rules

#include<iostream>

using namespace std;

class Base
{
    public:
    Base(int k=3):pub(k),pro(k),pri(k) {};
    int pub;

    protected:
    int pro;

    private:
    int pri;
};

class Der:public Base
{
  //public dediğimiz için
  //int pub -> public
  //int pro -> protected
  //int pri -> private
  //olarak kaldı

};

class Der1:private Base
{
    //private dediğimiz için
    //int pub -> private oldu
    //int pro -> private oldu
    //int pri -> private kaldı
};

class Der2:protected Base
{
    //protected dediğimiz için
    //int pub -> protected oldu
    //int pro -> protected kaldı
    //int pri -> private kaldı
};

class Der3:public Der
{

};

class Der4:public Der1
{

};

class Der5:public Der2
{

};

int main()
{
Base b(6);
Der3 d;
Der4 x;
Der5 y;
cout<<b.pub<<endl; //erişim var
cout<<d.pub<<endl; //erişim var hala çünkü base şuan Der class ı
cout<<x.pub<<endl; //erişim yok çünkü base şuan Der1 -> herşey
private oldu
cout<<y.pub<<endl; //erişim yok çünkü base şuan Der2 -> protected
oldu
}