【问题标题】:Overriding function with enum/int使用 enum/int 覆盖函数
【发布时间】:2009-02-18 20:04:01
【问题描述】:

如果有一个基类 DeriveMe 有一个函数 virtual void DoSomething(int) 和一个继承 DeriveMe 的类 DerivedThat 有一个函数 void DoSomething(SomeEnum)... DerivedThat 会覆盖基类 DoSomething 因为枚举在编译期间评估为整数C++ 的时间?

我可以尝试通过将 DoSomething 设为纯虚拟并编译/运行它以查看它是否有效,但这是我的第一个 stackoverflow 问题,所以我宁愿问它。

【问题讨论】:

  • 你知道代码比英文描述清楚得多!
  • 同意,但我认为这个问题不值得。

标签: c++ inheritance compiler-construction enums


【解决方案1】:

不,DerivedThat 将从基类中隐藏函数,因为签名不匹配。 enums 评估为int,因为它们是一个不同的类型

请参阅 C++ 常见问题解答,23.929.19 部分。

【讨论】:

    猜你喜欢
    • 2010-10-25
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 2021-09-11
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 1970-01-01
    相关资源
    最近更新 更多