对话框类CA和它的继承类CChild类的对话框不一样
目的是显示不同的对话框实现差不多的功能
CA:public CDialog{}
CA::CA(){create(g_hWnd) ;}//g_hWnd全局变量
CA::DoSomething() {AfxMessageBox("A") ;}//virtual 函数
CA::OnInitDialog(参数){ DoSomething() ;}
CChild:public CA
CChild::CChild(){}
CChild::DoSomething(){AfxMessageBox("Child") ;}
这样能显示Child吗?
如果不行,该怎么办呢?
没有看明白你的意思:
你好象是要在CA的OnInitDialog中调用DoSomething,希望结果
是运行CChild的DoSomething.
如果是这样,上面是不行的.
原理上好像可以,因为在构造CChild对象的时候会自动调用基类的构造函数。
g_hWnd又是全局变量
CChild的构造函数里传至基类CDialog的对话框资源ID是CA的还是CChild的?
当然可以。
不过OnInitDialog()是无参虚函数。你是不是搞错了。
CA::DoSomething()是虚函数.
那么在调用时动态决议是调用哪一个DoSomething.
不管你定义了CA还是CChild类型的指针或引用,要看它具体指向或引用那个类型的实例,才会调用该实例的类的DoSomething.
这样作是可以的,关键看你怎么用.
你能直接上oicq码?
8030303
没有这个必要吧