#include<iostream>
using namespace std;
class Base {
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
class Son1 :public Base {
public:
void func() {
m_A = 10;//公共权限
m_B = 10;//保护权限
//m_C = 10;子类不可访问
}
};
//公共继承方式下父类公共权限的成员变成子类公共权限的成员
//父类保护权限的成员变成子类保护权限的成员
//父类私有权限的成员子类在类内不可访问
class Son2 :protected Base {
public:
void func() {
m_A = 10;//保护权限
m_B = 10;//保护权限
//m_C = 10;子类不可访问
}
};
//保护继承方式下父类公共权限的成员变成子类保护权限的成员
//父类保护权限的成员变成子类保护权限的成员
//父类私有权限的成员子类在类内不可访问
class Son3 :private Base {
public:
void func() {
m_A = 10;//私有权限
m_B = 10;//私有权限
//m_C = 10;子类不可访问
}
};
//私有继承方式下父类公共权限的成员变成子类私有权限的成员
//父类保护权限的成员变成子类私有权限的成员
//父类私有权限的成员子类在类内不可访问
int main() {
Son1 s1;
s1.m_A = 100;
//s1.m_B = 200;保护权限的成员类外访问不到
//s1.m_C = 300;私有权限的成员类外访问不到
system("pause");
return 0;
}