c++ - 用 enum/int 覆盖函数

标签 c++ inheritance compiler-construction enums

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

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

最佳答案

不,DerivedThat 将从基类中隐藏函数,因为签名不匹配。 枚举不会计算为int,因为它们是不同的类型

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

关于c++ - 用 enum/int 覆盖函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/562588/

相关文章:

c++ - 范围 g++ 迂腐编译

c++ - ADL 在 constexpr 函数中不起作用(仅限 clang)

swift - 关于在 Swift 中重写类属性的困惑

compiler-construction - ARM NEON 矢量化失败

ios - xcode LLMV 3.1 编译器数组问题

c++ - 我什么时候可以自信地使用 -O3 编译程序?

c++ - 函数尝试 block 和 noexcept

c++ - 有没有办法丢弃空捕获?

c# - 如何避免类继承绕过?

Swift继承函数返回类型不能是子类型