#include <cstdio>
using namespace std;
class BaseA{
public:
virtual void foo()=0;
};
class BaseB{
public:
virtual void bar()=0;
};
class Derived : public BaseA, public BaseB {
public:
void foo(){
printf("foo!\n");
}
void bar(){
printf("bar!\n");
}
};
int main() {
Derived* derived=new Derived;
BaseA* basea=derived;
BaseB* baseb=derived;
// 多继承导致basea和baseb不一样
printf("%p %p %p\n", (void*)derived, (void*)basea, (void*)baseb);
return 0;
}