//********基类和派生类的地址问题
#include<iostream>
#include<memory.h>
#include<assert.h>
using namespace std;
class A
{
int m_nA;
};
class B
{
int m_nB;
};
class C:public A,public B
{
int m_nC;
};
int main(void)
{
C* pC=new C;
B* pB=dynamic_cast<B* >(pC);
A* pA=dynamic_cast<A* >(pC);
if(pC==pB)
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
if(pC==(C*)pB)
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
if((int)pC==(int)pB)
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
if((int)pC==(int)((C*)pB))
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
return 0;
}
#include<iostream>
#include<memory.h>
#include<assert.h>
using namespace std;
class A
{
int m_nA;
};
class B
{
int m_nB;
};
class C:public A,public B
{
int m_nC;
};
int main(void)
{
C* pC=new C;
B* pB=dynamic_cast<B* >(pC);
A* pA=dynamic_cast<A* >(pC);
if(pC==pB)
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
if(pC==(C*)pB)
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
if((int)pC==(int)pB)
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
if((int)pC==(int)((C*)pB))
{cout<<"equal"<<endl;}
else
{cout<<"unequal"<<endl;}
return 0;
}