最近在看《深度探索C++对象模型》在看到函数部分,遇到一个关于多重继承和函数指针如何实现多态的问题。如果你想看懂本篇内容,需要先理解c++中变量的内存模型,一点点的汇编基础。
本篇博客是基于微软编译器
0X00在单继承情况下函数指针多态实现
类成员虚函数指针可以实现多态嘛?
我们有一段单继承的代码,并且定义了一个函数指针,我们问题是:类成员虚函数指针在不同的对象调用情况下可不可以实现多态?
class Base{
public:
virtual void func() {
cout << "Base::func" << endl;
}
};
class Imp : public Base{
public:
virtual void func() {
cout << "Imp::func" << endl;
}
};
int main() {
void (Base::*test)() = &