首页 > 解决方案 > c++ 公共与私有继承

问题描述

我不明白,我真的没有在类中获得公共继承与私有继承。假设我们有以下代码:

class A {
    int A_a;
protected:
    int A_b;
public:
    int A_c;
};
class B : public A {
    int B_a;
protected:
    int B_b;
public:
    int B_c;
};

class C : private A {
    int C_a;
protected:
    int C_b;
public:
    int C_c;
};

我知道它必须具有对 vars 和 funcs 的访问权限,但是做所有测试我真的可以掌握它而且我不知道何时应用公共或私有继承;

标签: c++classinheritance

解决方案


这是简单的 sheme(基类 -> 派生类)类成员的可见性如何随着不同类型的继承而变化:

公共继承:

  • 公共->公共
  • 受保护 -> 受保护
  • 私人 -> 私人

受保护的继承:

  • 公共 -> 受保护
  • 受保护 -> 受保护
  • 私人 -> 私人

私有继承:

  • 公共 -> 私人
  • 受保护 -> 私人
  • 私人 -> 私人

这里有几个简单的例子https://www.tutorialspoint.com/cplusplus/cpp_inheritance.htm


推荐阅读