最近在看MFC源代码,发现一个问题,对于非静态的函数OnOK(),MFC生成的源代码调用方式是CDialog::OnOK(),这种调用方式是怎么回事?如果不是静态的函数,C++会默认给一个this指针作为参数,直接OnOK()调用就可以了,可这里他又显示地使用了CDialog::OnOK(),有没有人知道是怎么回事,解释一下,不胜感激~!
解决方案 »
- 我的非模式对话框不能够正常显示了
- AfxBeginThread的线程在视图(view)中的响应问题
- df
- 请教遥感图像文件的通道类型的由来
- 请问一个有关VC开发环境的问题!
- extern "C" SOMETYPE1 * FunctionName(SOMETYPE2 *b);是什么意思?谁帮我解释一下,尤其是extern
- 请问,在类里申明CFile a和CFile *a有什么不同,请指教
- 数据类型怎样转换?(Double和Long)
- 用什么函数可以获得线程的状态?
- 请问listview_setextendedlistviewstyle( )怎么用,请给出一个例子。
- 在对话框上双缓冲画图显示不出来问题
- 求助:透明
===========
这个很简单啊,比如你的类是A类,里面有一个函数a,如果a是静态的函数,可以用:A::a()来调用,如果a不是静态的函数,那么你必须先定义A类的一个对象A m_a;然后再调用m_a.a();不过,这个和你所问的问题无关,上面的CDialog::OnOK并不是静态成员函数的问题,而是在CDialog的派生类中重载OnOk函数时由于要用到基类的OnOK,所以在CDialog的派生类的OnOK函数中调用CDialog::OnOK;这个是调用基类的函数,与上面说的没有关系。