I have:
class A{
public:
virtual void foo();
};
class B : public A{
public:
void foo();
};
B *ptr = new B();
我想给A打电话foo()
直接使用“ptr”指针。
当我尝试时
(A*)ptr->foo();
它仍然调用 B 的版本foo()
。我该如何调用 A 的版本呢?
这可能吗?有哪些替代方案?谢谢。
当您使用以下名称命名函数时::
范围解析形式,您可以调用命名函数,就好像它不是虚拟的一样。
ptr->A::foo();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)