继承方式
- 继承的语法:class 子类:继承方式 父类
继承方式一共有三种:
公共继承
保护继承
私有继承
代码示例:
#include <iostream>
using namespace std;
//继承方式
class Base1
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
//公共继承
class Son1 :public Base1
{
void func()
{
m_A = 10; //父类中的公共权限,到子类中依然是公共权限
m_B = 10; //父类中的保护权限,到子类中依然是保护权限
//m_C = 10; //父类中的私有权限,子类不能访问
}
};
void test01()
{
Son1 s1;
s1.m_A = 100;
//s1.m_B = 100; //到Son1中m_B是保护权限,类外不能访问
}
//继承方式
class Base2
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
//保护继承
class Son2 :protected Base2
{
public:
void func()
{
m_A = 10; //父类中的公共权限,到子类中变为保护权限
m_B = 10; //父类中的保护成员,到子类中变为保护权限
//m_C = 10; //父类中的私有权限,子类不能访问
}
};
void test02()
{
Son2 s1;
//s1.m_A = 1000; //在Son2中m_A变为保护权限,因此类外访问不到
//s1.m_B = 1000; //到Son1中m_B是保护权限,类外不能访问
}
//继承方式
class Base3
{
public:
int m_A;
protected:
int m_B;
private:
int m_C;
};
//私有继承
class Son3 :private Base3
{
public:
void func()
{
m_A = 100; //父类中的公共权限,到子类中变为私有成员
m_B = 100; //父类中的保护成员,到子类中变为私有权限
//m_C = 10; //父类中的私有权限,子类不能访问
}
};
class GrandSon3 :public Son3
{
public:
void func()
{
//m_A = 1000; //到了Son3中 m_A变为私有,及时是儿子,也是访问不到的
//m_B = 1000; //到了Son3中 m_B变为私有,及时是儿子,也是访问不到的
}
};
void test03()
{
Son3 s1;
//s1.m_A = 1000; //在Son3中m_A变为私有权限,因此类外访问不到
//s1.m_B = 1000; //到Son1中m_B是私有权限,类外不能访问
}
int main()
{
return 0;
}
感兴趣欢迎关注微信公众号黑马金牌编程