#include<iostream>
using namespace std ;
class base {
private :
int a ;
void dis_a(){ cout<<"a = "<<a<<endl;}
protected :
int b ;
void dis_b(){ cout<<"b = "<<b<<endl;}
public :
int c ;
base(int a1 = 0 ,int b1 = 1 , int c1 = 2):a(a),b(b),c(c){};
void dis_c(){ cout<<"c = "<<c<<endl;}
};
class derived : private base { // 私有继承 基类的protected成员和public成员都为派生类的private成员。
public :
void disc(){
cout<<"derived c = "<<c<<endl; // 直接访问基类public数据成员 c
void dis_c() ; // 直接调用基类public函数成员
}
void disb(){
cout<<"derived b = "<<b<<endl; // 直接访问基类protected数据成员b
void dis_b(); // 直接调用基类protected函数成员
// void disa(); // 错误 ,派生类不能访问基类的private成员
}
};
int main(){
derived obj(1 , 2 ,3) ;
// obj.dis_c(); //错误 私有继承 ,派生类的对象不能访问基类的任何成员
obj.disc();
obj.disb();
}
私有继承:
访问控制与权限 :
1:基类的protected成员和public成员 ,在派生类的都是属于private成员 ;在派生类中(类内)能够访问基类的protected成员和public成员,但派生对象(类外)不能访问基类的任何成员。
2: 基类的private成员在派生类中不可访问(类内 , 类外都不能访问)。