标签: c++ inheritance compiler-construction enums
如果有一个具有函数virtual void DoSomething(int)的基类DeriveMe和一个继承DeriveMe的类,其名为DerivedThat,其函数为void DoSomething(SomeEnum) ... DerivedThat会覆盖基类DoSomething,因为枚举评估在C ++的编译期间进行整理?
virtual void DoSomething(int)
void DoSomething(SomeEnum)
我可以尝试将DoSomething设为纯虚拟并编译/运行它以查看它是否有效但这是我的第一个stackoverflow问题,所以我宁愿问它。
答案 0 :(得分:8)
不,DerivedThat将隐藏基类中的函数,因为签名不匹配。 enum 不评估为int,因为它们是不同类型。
DerivedThat
enum
int
请参阅C ++常见问题解答,23.9和29.19部分。