欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[C++之旅] 18 公有继承、保护继承和私有继承

程序员文章站 2022-03-08 19:29:57
...

[C++之旅] 18 公有继承、保护继承和私有继承

继承

继承的类称为派生类或子类,被继承的类称为基类或父类。继承即是按照不同的继承方式将基类的成员继承到派生类中,即派生类拥有基类的成员。

继承的方式

  • 公有继承 class A : public B

  • 保护继承 class A : protected B

  • 私有继承 class A : private B

访问属性

继承方式 基类成员访问属性 派生类成员访问基类属性
private成员 无法访问
公有继承 protected成员 继承到protected下
public成员 继承到public下
private成员 无法访问
保护继承 protected成员 继承到protected下
public成员 继承到protected下
private成员 无法访问
私有继承 protected成员 继承private下
public成员 继承private下

以下定义两个类,人类中含有数据成员姓名(m_strName)及成员函数eat()
士兵类从人类派生,含有数据成员编号(m_strCode)及成员函数attack()
在main函数通过对数据的访问。

#include <iostream>
#include <stdlib.h>
#include <string>
using namespace std;

/**
 * 定义人的类: Person
 * 数据成员姓名: m_strName
 * 成员函数: eat()
 */
class Person
{
public:
    string m_strName;
    void eat()
    {
        cout << "eat" << endl;
    }
};

/**
 * 定义士兵类: Soldier
 * 士兵类公有继承人类: public
 * 数据成员编号: m_strCode
 * 成员函数: attack()
 */
class Soldier:public Person
{
public:
    string m_strCode;
    void attack()
    {
        cout << "fire!!!" << endl;
    }
};

结果:

Jim
592
eat
fire!!!