我的两个类
class AAA
{
public:
//....
};class BBB:virtual public AAA
{
public:
BOOL res;
}在程序中
AAA *aaa;//aaa是个全局指针
//...
aaa=new BBB;
//...
在下一段程序中,我想通过aaa来访问BBB的对象中的res;
我这样:BBB *bbb=(BBB *)(aaa);通不过编译。
我这样:BBB *bbb=(BBB *)(LPVOID)(aaa);似乎访问出来的数据不正确。
请问,应该怎么样才能正确访问?
class AAA
{
public:
//....
};class BBB:virtual public AAA
{
public:
BOOL res;
}在程序中
AAA *aaa;//aaa是个全局指针
//...
aaa=new BBB;
//...
在下一段程序中,我想通过aaa来访问BBB的对象中的res;
我这样:BBB *bbb=(BBB *)(aaa);通不过编译。
我这样:BBB *bbb=(BBB *)(LPVOID)(aaa);似乎访问出来的数据不正确。
请问,应该怎么样才能正确访问?
这种情况dynamic_cast不行的,返回null
比如组合关系:B类有一个A类成员对象,即常说的has a关系,而非is a关系(继承)
(不要过多依赖面向对象中的继承特性,有时会增加代码的耦合度,个人经验,仅供参考,呵呵)
reinterpret_cast一般用于整数值类型与指针类型的转换,这个也不行的