c++ - 如何在没有多态效果的情况下调用虚方法?

标签 c++ methods polymorphism virtual

我有引用ref:

Foo &ref = ..

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

但是我想调用 say 就好像它不是不是 多态的,所以版本是在 Foo 中定义的,而不是在子类中定义的。

怎么做?

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

请注意,我没有坐在 Foo 或其任何子节点中,Foo 树是我当前 POV 的外部结构。

最佳答案

怎么样

ref.Foo::say();

这就是你要找的?

关于c++ - 如何在没有多态效果的情况下调用虚方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24509994/

相关文章:

c++ - fopen 与 ofstream

c# - 找不到 'Name' 的定义

java - 泛型类型的运行方法

c++ - 从基指针/引用调用正确的自由函数

c++ - CRTP 和方法返回 void *

c# - 这是使用多态性的正确方法吗

c++ - 使用 Mersenne twister 的一维噪声在不同的设备上给出不同的结果

javascript - WebAssembly emsdk 安装失败

c++ - 什么时候使用空指针?

c++ - 是否有围绕类添加方法的最薄包装器之类的东西?