如何在没有多态效应的情况下调用虚拟方法

How to call virtual method without polymorphic effect?

本文关键字:情况下 调用 虚拟 方法 多态      更新时间:2023-10-16

我有参考ref:

Foo &ref = ..

我想调用一个方法ref.say(),它在Foo中被定义为虚拟的,我确信它在子类中被覆盖(因为我也写了它们)。

然而,我想调用say,如果它是不是多态的,所以在Foo中定义的版本,而不是在子类中。

怎么做?

我想到的一件事是取ref的指针,然后解引用它,这个技巧应该杀死多态性,但我不确定这是否保证达到预期的效果。

请注意,我不是坐在Foo或它的任何子,Foo树是外部结构从我当前的POV

ref.Foo::say();

这就是你要找的吗?