【问题标题】:c++ public vs private inheritancce [duplicate]c ++公共与私有继承[重复]
【发布时间】:2018-10-31 22:35:33
【问题描述】:

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

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++ 教科书?
  • 对不起,我知道。但是我的英语有时会误导我,我在 pdf“C++ 中的面向对象编程,第四版”中使用这本旧书。

标签: c++ class inheritance


【解决方案1】:

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

公共继承:

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

受保护的继承:

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

私有继承:

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

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

【讨论】:

    猜你喜欢
    • 2011-01-05
    • 2011-03-11
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-31
    相关资源
    最近更新 更多