继承方式:
公共继承
保护继承
私有继承
//4.6.2 继承方式
#include<iostream>
using namespace std;
class Base1
{
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 Base2
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
class Son2 :protected Base2
{
void func()
{
m_A = 100; //父类中公共成员到子类中变为保护权限
m_B = 100;//依旧是保护
//m_C = 100; 父类中私有 子类访问不到
}
};
void test01()
{
Son1 s1;
s1.m_A = 100;
//s1.m_B = 100;//到Son1还是保护权限 ,类外不可访问
}
void test02()
{
Son2 s2;
//s2.m_A = 100;//在Son2中m_A为保护权限 类外不可访问
//s2.m_B = 100;//保护 类外不可访问
}
class Base3
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
class Son3 : private Base1
{
public:
void func()
{
m_A = 100;//父类公共成员 变为私有
m_B = 100;//父类中保护成员 变为私有
//m_C = 100; 子类访问不到
}
};
class GrandSon3 :public Son3
{
public:
void func()
{
//m_A = 10000;到了Son3变为私有的了
// m_B = 10000; 到了Son3 变为了私有的了
}
};
void test03()
{
Son3 s3;
//s3.m_A = 100;//父类中公共成员 到子类变为 私有成员
//s3.m_B = 100;//父类中保护成员 到子类变为 私有成员
//s3.m_C = 100; //父类中私有成员 子类访问不到
}
int main()
{
test01();
test02();
test03();
system("paue");
return 0;
}