64,654
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class A {
public:
virtual void foo(int*) = 0;
};
class B {
public:
virtual void foo(double*) = 0;
};
class C: public A, public B {
public:
void foo(double*) {
cout << "double" << endl;
}
void foo(int*) {
cout << "int" << endl;
}
};
int main() {
C* p = new C();
void* vp = p;
((B*)p)->foo(0); // double
((B*)(A*)p)->foo(0); // int # why not double ?
((B*)(C*)p)->foo(0); // double
return 0;
}