基类的指针指向派生类对象的地址输出有关问题

基类的指针指向派生类对象的地址输出问题
#include<iostream.h>
#include <stdio.h>

class ClassA
{
public:
virtual ~ClassA(){};
virtual void FunctionA(){};
};
class ClassB
{
public:
virtual ~ClassB(){};
  virtual void FunctionB(){};
};
class ClassC : public ClassA,public ClassB
{
public:
};
main()
{
ClassC aObject;
ClassA* pA=&aObject;
ClassB* pB=&aObject;
ClassC* pC=&aObject;
printf("&pA=%p\n",pA);
printf("&pB=%p\n",pB);
printf("&pC=%p\n",pC);
}
为什么pA和pC的地址相同?而pB不相同

------解决方案--------------------
探讨
#include<iostream.h>
#include <stdio.h>

class ClassA
{
public:
virtual ~ClassA(){};
virtual void FunctionA(){};
};
class ClassB
{
public:
virtual ~ClassB(){};
virtual void FunctionB()……

------解决方案--------------------
深度解析c++对象模型中有介绍

------解决方案--------------------
探讨

引用:
不可能


麦迷呢!

你试试就知道可能了,而且如果继承的顺序是这样的,就会变化的
class ClassC : public ClassB,public ClassA //向继承B,再继承A,这时候pB和pC就一样,pA就变了