多继承this指针的问题!
#include <iostream>
using namespace std;
class C;
class A
{
public:
int a;
virtual void funA() ;
};
void A::funA()
{
this->a = 1;
printf("A\n");
}
class B
{
public:
int b;
virtual void funB();
};
void B::funB()
{
B *pb = this;
C *pc = (C*)this;
printf("Bthis = %x\n",this);
printf("pb = %x\n",pb);
printf("pc = %x\n",pc);
}
class C : public A,public B
{
public:
int c;
virtual void funC();
};
void C::funC()
{
printf("Cthis = %x\n",this);
printf("C\n");
}
int main()
{
C c,*pc = &c; //&c sizeof(C)
B *pb = &c;
pb->funB();
return 1;
}
这段代码输出什么?funB()函数中this,pb,pc是否相等?为什么?