代码
#include<iostream>
using namespace std;
#include <string>
//公共继承
class Base1
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
//保护继承
class Base2
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
//私有继承
class Base3
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
class Son1 :public Base1
{
public:
void func()
{
m_A = 10;//父类中公共权限成员 到子类中依然是公共权限
m_B = 10;//父类中保护权限成员 到子类中依然是保护权限
//m_C = 10;//父类中保护私有成员 访问不到
}
};
class Son2 :protected Base2
{
public:
void func2()
{
m_A = 10;//父类中公共权限成员 到子类中变为是保护权限
m_B = 10;//父类中保护权限成员 到子类中依然是保护权限
//m_C = 10;//父类中保护私有成员 访问不到
}
};
class Son3 :protected Base3
{
public:
void func3()
{
m_A = 10;//父类中公共权限成员 到子类中变为是私有权限
m_B = 10;//父类中保护权限成员 到子类中依然是私有权限
//m_C = 10;//父类中保护私有成员 访问不到
}
};
void test01()
{
Son1 s1;
s1.m_A = 100;
//s1.m_B = 100;//到了Son1中m_B是保护权限 类外不可以访问
}
void test02()
{
Son2 s2;
//s2.m_A = 100;//到了Son2中m_A是保护权限 类外不可以访问
//s2.m_B = 100;//到了Son2中m_B是保护权限 类外不可以访问
}
void test03()
{
Son2 s3;
//s3.m_A = 100;//到了Son3中m_A是私有权限 类外不可以访问
//s3.m_B = 100;//到了Son3中m_B是私有权限 类外不可以访问
}
int main()
{
system("pause");
return 0;
}