继承方式

  • 继承的语法: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;
}

感兴趣欢迎关注微信公众号黑马金牌编程