这是两个不同的概念喽.
所谓的映射函数就是消息处理函数了,其实它只是普通的函数啦,跟虚函数不是一个概念.
虚函数是C++的概念,而映射函数是MFC对消息处理封装的一套机制...其实对于消息处理也可以用虚函数机制来实现,但是效率会降低,在MFC 技术内幕上有这方面的阐述.所以MFC最终采用的是消息映射.因为虚函数重载后派生类的实现一般是一种不同于基类实现的另外一个行为描述,而在消息处理中我们经常把子类所做的事跟基类所做的事独立的放在一起分别调用,这样的显式调用更加明确.
比如:class CMyDlg : public CDialog
{
   ....
};// 分工明确的消息处理
BOOL CMyDlg::OnInitDialog()
{
   CDialog::OnInitDialog();   // 显式调用基类的
   ...
   // CMyDlg本身的操作代码
   ...
}

解决方案 »

  1.   

    谢谢你!
    但我还是不是很清楚它们之间的差别,能说得更详细写吗?
    虚函数是c++类的范畴,映射函数是MFC范畴,但他们之间的相同点,或者说是相互关系又怎样?
    希望与大家讨论!
      

  2.   

    在派生类中“显式调用“ 的含义是什么,是不就是即调用来基类的函数的共性的东西(CDialog::OnInitDialog();// 显式调用基类的),而所谓的重载就是把具体的功能加了进来(...
      // CMyDlg本身的操作代码
      ...)
      

  3.   

    虚函数是用于多态的,joke说的显式调用大概就是明明白白的调用的意思,就是说派生类的函数与基类的被重载函数没什么牵扯,在派生类的函数中调不调用基类的被重载函数都可以
      

  4.   

    虚函数和消息映射在mfc中其实毫不相干,彼此没什么联系,
    消息影射就是完成消息和函数的对应关系的,
    无论这个函数是不是虚函数。