- UID
- 2198
注册时间2005-6-29
阅读权限255
最后登录1970-1-1
副坛主
该用户从未签到
|
楼主 |
发表于 2010-1-28 02:20:47
|
显示全部楼层
//////////////////////////////////////////////////////////////////////
// A
//////////////////////////////////////////////////////////////////////
class A
{
public:
A(int a);
virtual ~A();
public:
int m_a;
int GetData();
};
A::A(int a)
{
m_a = a;
}
A::~A()
{
m_a = 0 ;
}
int A::GetData()
{
return m_a;
}
//////////////////////////////////////////////////////////////////////
// B
//////////////////////////////////////////////////////////////////////
class B : public A
{
public:
B(int a,int b,int d);
virtual ~B();
public:
int m_b;
D Objd;
int GetData();
};
B::B(int a,int b,int d):Objd(d),A(a)
{
m_b = b;
}
B::~B()
{
m_b = 0;
}
int B::GetData()
{
return m_b;
}
//////////////////////////////////////////////////////////////////////
// D
//////////////////////////////////////////////////////////////////////
class D
{
public:
D(int d);
virtual ~D();
public:
int m_d;
int GetData();
};
D::D(int d)
{
m_d = d;
}
D::~D()
{
}
int D::GetData()
{
return m_d;
}
//////////////////////////////////////////////////////////////////////
// main() 第一种玩法 对象调用其他类的方法
//////////////////////////////////////////////////////////////////////
int main(int argc, char* argv[])
{
B theb(10,20,30);
cout<< theb.GetData() << endl;
cout<< ((A)theb).GetData() << endl;
cout<< ((D *)&theb)->GetData() << endl; // 这个时候把 thea 的地址给D的成员函数玩
cout<< ((D *)&theb.m_a)->GetData() << endl; // 这个时候把 theb 的地址给D的成员函数玩
return 0;
} |
|