假设基类 B
有一个非虚公共(public)函数 f()
,不幸的是它被派生类 D
覆盖了。
然后有一个D
对象d
传递给了一个B
指针pB
。
有没有办法阻止调用pB->f()
?
最佳答案
如果你可以改变B
,你可以将f
变成虚拟的,或者将它转发到一个虚拟保护的do_f
,或者其他各种东西。
如果你不能改变 B
,你就不能阻止它的公共(public)方法被调用,你也不能以某种方式拦截对非虚拟基类方法的调用。
关于c++ - 如何防止基类指针下的派生类对象调用基类中定义但在派生中被覆盖的公共(public)非虚函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39441214/