【问题标题】:C++ Custom Inheritance in private, public and protected私有、公共和受保护的 C++ 自定义继承
【发布时间】:2020-11-07 12:11:56
【问题描述】:

是否有可能让受保护的继承成员在派生类中自动受到保护,以及继承的公共成员在同一个派生类中自动成为公共成员?

例如:

如果我有一个基类A,并且它有一些受保护的和公共的成员,并且我选择创建一个继承自A的派生类B,那么是否可以自动把继承的protected 类别中的受保护成员,以及 A 中公共类别中的继承公共成员(而不是 class B : public A - 这会使所有继承的成员都公开)。

我知道我可以手动执行using Base::var,但我正在寻找更快的解决方案。

我也有视觉辅助。

【问题讨论】:

  • 重读了好几遍,究竟是什么让你觉得这还不是这样?
  • 见programiz.com/cpp-programming/… 当你使用public继承时,公共成员保持公开,受保护成员保持保护。
  • 我不知道这个。谢谢你的建议。

标签: c++ inheritance


【解决方案1】:

继承后继承成员的表示如下:

+--------------------------------------------------------------------------------+
|                     |                    DERIVED CLASS VIS.                    |
|   BASE CLASS VIS.   |----------------------------------------------------------+
|                     | PUBLIC DER.      | PRIVATE DER.     | PROTECTED DER.     |
+--------------------------------------------------------------------------------+
| Private     =>      | Not inherited    | Not inherited    | Not inherited      |
| Protected   =>      | Protected        | Private          | Protected          |
| Public      =>      | Public           | Private          | Protected          |
+--------------------------------------------------------------------------------+

关于公共继承:

class B : public A
  1. 基类的私有成员没有派生到派生类中。
  2. 基类的受保护成员是派生到派生类但受保护的。
  3. 基类的公共成员也派生到派生类中,并且是从类外部访问的公共成员。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-24
    • 2015-07-14
    • 2010-10-26
    • 2023-04-08
    • 1970-01-01
    相关资源
    最近更新 更多