【发布时间】:2025-12-23 14:15:06
【问题描述】:
有人问我这个疯狂的问题。 我已经疯了。
可以使用指向派生类对象的基类指针调用基类中声明为虚拟的方法吗?
这可能吗?
【问题讨论】:
-
您可能想从The Definitive C++ Book Guide and List 获得一本入门书籍。
-
@James:我想他是在问如果
p是base*并指向derived,你是否可以使用p调用base::foo()而不是derived::foo() -
我会问面试官的。你为什么要这样做,因为你打破了类层次结构的开发者设计的契约。如果最初的开发人员希望您调用基类方法,他会提供一个非虚拟方法来执行该操作。
-
@sbi:我可能是错的,但是调用基类的虚函数实现对我来说似乎并不是那么基本。詹姆斯是对的,当然,我只是说这是 201 级的东西,而不是 101 级的东西。
-
即使您“按要求”提供了问题,简单的代码 sn-p 也可能有助于澄清所问的内容。