如何在没有多态效应的情况下调用虚拟方法
How to call virtual method without polymorphic effect?
我有参考ref
:
Foo &ref = ..
我想调用一个方法ref.say()
,它在Foo
中被定义为虚拟的,我确信它在子类中被覆盖(因为我也写了它们)。
然而,我想调用say
,如果它是不是多态的,所以在Foo中定义的版本,而不是在子类中。
怎么做?
我想到的一件事是取ref
的指针,然后解引用它,这个技巧应该杀死多态性,但我不确定这是否保证达到预期的效果。
请注意,我不是坐在Foo或它的任何子,Foo树是外部结构从我当前的POV
ref.Foo::say();
这就是你要找的吗?
相关文章:
- 如果 std::vector::clear() 不是静态的,如何在没有实例的情况下调用它?
- C++ - 如何在不调用其属性的情况下调用类?
- C++ 在不释放内存的情况下调用析构函数
- Python在不引用类名的情况下调用类函数
- 为什么在这种情况下调用非常量右值移动构造函数?
- 是否可以在没有显式专用化的情况下调用可变参数模板函数?
- 使用按引用调用时,不能在没有对象的情况下调用成员函数 const
- 您可以在不调用构造函数的情况下调用攻击器吗?
- 命名空间:不能在没有对象的情况下调用成员函数
- 哪些语言将在没有显式桥接的情况下调用C++
- 如何在不重新索引顶点的情况下调用"boost::remove_vertex"?
- C :在没有对象实例的情况下调用非静态成员函数
- 在不实例化的情况下调用不同派生类的虚拟方法
- C 如何在没有错误的情况下调用void函数
- 在MSVC上的数组初始化期间,destructor在不复制或移动构造方的情况下调用
- 在不指定实例化的情况下调用类模板的静态方法的方法
- 为什么INVOKE总是取消引用数据成员,而不是在可能的情况下调用
- 是否可以在不实例化派生类的情况下调用该类的虚拟函数
- 无法在没有对象的情况下调用成员函数(尽管我相信我确实初始化了它)
- 为什么在没有赋值运算符的情况下调用转换构造函数