vc 父类实现一个虚函数,子类继承并也实现这个虚函数,子类调用这个虚函数,父类这个虚函数为什么不会执
答案:2 悬赏:10 手机版
解决时间 2021-04-14 21:21
- 提问者网友:自食苦果
- 2021-04-14 00:37
vc 父类实现一个虚函数,子类继承并也实现这个虚函数,子类调用这个虚函数,父类这个虚函数为什么不会执
最佳答案
- 五星知识达人网友:神也偏爱
- 2021-04-14 00:52
CWnd 的 OnCommand() 是虚函数:
virtual BOOL OnCommand(WPARAM wParam,LPARAM lParam);
它只传递信息(变量),并无具体处理和计算。相当于一个“接口”,留给继承类 覆盖/改写。
CView 是 CWnd 的 一个派生类,它需要 重写 (override)这个 函数,提供具体处理和计算。
CWnd 的 别的派生类,也可以重写这个 函数。
程序执行时,才决定到底调用哪个具体的重写 后的函数。-- 所谓“一个接口,多种方法”。
在CView里执行CView里的OnCommand()
在CDoc里执行CDoc里的OnCommand()追问那为什么会有一个先后响应OnCommand() 的问题,比如我在Frame类中捕获一个OnCommand() 消息响应,在View类中也添加一个OnCommand() 消息响应,为什么会先响应Framen类中的OnCommand()?追答当然会有先后。问题在你的逻辑设计。
virtual BOOL OnCommand(WPARAM wParam,LPARAM lParam);
它只传递信息(变量),并无具体处理和计算。相当于一个“接口”,留给继承类 覆盖/改写。
CView 是 CWnd 的 一个派生类,它需要 重写 (override)这个 函数,提供具体处理和计算。
CWnd 的 别的派生类,也可以重写这个 函数。
程序执行时,才决定到底调用哪个具体的重写 后的函数。-- 所谓“一个接口,多种方法”。
在CView里执行CView里的OnCommand()
在CDoc里执行CDoc里的OnCommand()追问那为什么会有一个先后响应OnCommand() 的问题,比如我在Frame类中捕获一个OnCommand() 消息响应,在View类中也添加一个OnCommand() 消息响应,为什么会先响应Framen类中的OnCommand()?追答当然会有先后。问题在你的逻辑设计。
全部回答
- 1楼网友:等灯
- 2021-04-14 01:00
通过虚表实现
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯