【问题标题】:is there any way to prevent the derived class from initializing a base class reference有什么办法可以防止派生类初始化基类引用
【发布时间】:2023-03-22 16:09:01
【问题描述】:

我有 Base 和 Derived 类,以及这段代码:

Derived d; Base& b = d;

在这个初始化中有任何演员吗?我理论上可以禁用这个吗?

【问题讨论】:

  • 只能私下继承Base?
  • 继承建立了“Derived is-a Base”关系。如果您不想要这种关系,您可能不想使用继承。
  • Drew Dormann,只是想知道理论上是否可以禁用它。
  • 初始化中没有演员表。你可以通过看它来判断。有一个到Base&的隐式转换。
  • 在这种情况下,您的问题的答案很简单明了。 在这个初始化中有任何强制转换吗? 没有。我理论上禁用了这个? 没有。

标签: c++ class inheritance reference


【解决方案1】:

使用私有继承。

class derived : private base {};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-04
    • 2022-12-03
    • 1970-01-01
    • 2018-04-29
    • 2014-03-22
    • 1970-01-01
    • 2020-07-06
    • 1970-01-01
    相关资源
    最近更新 更多