动态类型转换?该如何处理

动态类型转换?
本帖最后由 adobase 于 2012-12-20 16:17:50 编辑
class OneDialog : public CDialog
{
  ....
}
class TwoDialog : public CDialog
{
  ....
}
........
//  自己创建的Dialog

OneDialog* OneDlg = new OneDialog;
CDialog* pDialog[10];
pDialog[0] = OneDlg;
pDialog[0]->   该如何点出 OneDlg的成员变量。


 因为 创建Dlg的时候是随机创建的。  所以不能固定强转哪个对话框的类型   OneDlg 有可能是 TwoDlg
  有什么方案能解决呢 。?  分不多阿  求解决。。!


------解决方案--------------------
没看懂
既然可能是TwoDlg,那怎么能去访问一个OneDlg 的变量
------解决方案--------------------
if(typeid(pDialog[0])==typeid(OneDialog)
{

}else ifif(typeid(pDialog[0])==typeid(TwoDialog)
{


}
------解决方案--------------------
没太明白楼主的问题,你的onedlg,twodlg不都是派生自CDialog吗?当运行pDialog[0] = OneDlg时,会把派生类中重载的方法或成员函数切掉,此时pDialog[0]中保存的就是基类CDialog中的成员变量。