一:继承访问权限测试
源代码:
class A {
public:
int A_a;
protected:
int A_b;
private:
int A_c;
};
class pub_B :public A {
public:
void test() {
A_a = 2;
A_b = 2;
A_c = 2; //无法访问
}
int pub_B_a;
protected:
int pub_B_b;
private:
int pub_B_c;
};
class pro_B :protected A {
public:
void test() {
A_a = 2;
A_b = 2;
A_c = 2; //无法访问
}
int pro_B_a;
protected:
int pro_B_b;
private:
int pro_B_c;
};
class B :private A {
public:
void test() {
A_a = 2;
A_b = 2;
A_c = 2; //无法访问
}
int pri_B_a;
protected:
int pri_B_b;
private:
int pri_B_c;
};
void Test() {
pub_B b1;
b1.A_a;
b1.A_b; //无法访问
b1.A_c; //无法访问
b1.pub_B_a;
b1.pub_B_b; //无法访问
b1.pub_B_c; //无法访问
pro_B b2;
b2.A_a; //无法访问
b2.A_b; //无法访问
b2.A_c; //无法访问
b2.pro_B_a;
b2.pro_B_b; //无法访问
b2.pro_B_c; //无法访问
pro_B b3;
b3.A_a; //无法