多重继承时,子类实例调用不同父类的虚函数时,传入的this是一个东西吗?该怎么处理

多重继承时,子类实例调用不同父类的虚函数时,传入的this是一个东西吗?
class B{
public:
void BB(){
cout<<"this's address in BB:"<<(int)this<<endl;
};
};

class A{
public:
void AA(){
cout<<"this's address in AA:"<<(int)this<<endl;
};
};


class C:public A, public B
{
};

void main()
{
  C c;
  c.AA();
  c.BB(); 
}

打印出来的地址是不一样的。

------解决方案--------------------
this当然不一样。
C包含A和B.
所以
c.AA(); this指针被调整到A的部分。
c.BB(); this指针被调整到B的部分。

你可以继续给C搞一个CC()然后输出this
你会发现
c.CC(); 的this指针可能会和AA或BB输出一样的值,也可能不一样。
------解决方案--------------------
当然是不一样的了 这两个this不是继承类C的,而是基类A跟B的。。。
------解决方案--------------------
不一样的,编译器会自动调整

AA() 需要的是一个 A* 
BB() 需要的是一个 B*

所以相当于把 C* 专成 A* 作为this调用 AA

BB同理