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
}