基类Base里面有两个虚函数A和B,子类Drive继承至Base,只重写了其中一个接口,没有重写另一个接口。使用者获取到到的是指向子类B的基类指针。使用者如何知道子类重写的是接口A还是接口B,cpp有机制实现么,如果能实现写一个demo
时间: 2023-02-20 21:46:32 浏览: 119
C#子类对基类方法的继承、重写与隐藏详解
C++可以使用虚函数表来实现,具体实现可以参考以下demo:
#include <iostream>
using namespace std;
class Base {
public:
virtual void funcA() { cout << "Base funcA" << endl; }
virtual void funcB() { cout << "Base funcB" << endl; }
};
class Drive : public Base {
public:
virtual void funcA() { cout << "Drive funcA" << endl; }
//virtual void funcB() { cout << "Drive funcB" << endl; }
};
int main()
{
Base *p = new Drive();
p->funcA();
p->funcB();
return 0;
}
输出结果:
Drive funcA
Base funcB
阅读全文