看别人的代码,基类中定义了纯虚函数func()=0,继承类中重载该纯虚函数func(){}又调用基类中的func(),这是什么意思啊,基类中的func()=0不是空的吗?

解决方案 »

  1.   

    虚基类定义的函数都是func()=0 必须被重载  
    你的问题我没看懂可以给出代码吗?
      

  2.   

    class IConfVideoEvent
    {
    public:
    virtual void OnConfVideoEvent_UserCloseAVFromMenu(unsigned long ulSessionID, int nIndex) = 0;
    …………
    }class CAVConBase  : public IConfVideoEvent
    IConfVideoEvent *m_pIConfVideoEventConference;
    void CAVConDlg::OnConfVideoEvent_UserCloseAVFromMenu(unsigned long ulSessionID, int nIndex)
    {
    if (m_pIConfVideoEventMessenger && (nIndex == 0))
    {
    m_pIConfVideoEventMessenger->OnConfVideoEvent_UserCloseAVFromMenu(ulSessionID, nIndex);
    }
    }
    就是这样了,调用有什么用呢?
      

  3.   

    m_pIConfVideoEventMessenger->OnConfVideoEvent_UserCloseAVFromMenu(ulSessionID, nIndex);
    这里调用的是
    void CAVConDlg::OnConfVideoEvent_UserCloseAVFromMenu(unsigned long ulSessionID, int nIndex)
    而不是
    virtual void OnConfVideoEvent_UserCloseAVFromMenu(unsigned long ulSessionID, int nIndex) = 0;
    纯虚函数就是一个申明的接口 在别的类中实现它 主要实现多态
    m_pIConfVideoEventMessenger 这个东西没定义吧
      

  4.   

    写错了,上面定义的是这个
    IConfVideoEvent *m_pIConfVideoEventMessenger;那重新调用自身,又有什么意义呢,没有进行事件处理啊?
    请指教!
      

  5.   

    如果只有上面的代码,且那个指针有值,而且index==0的条件满足,又没有别的处理(比如异常捕获),上述代码只可能陷入一个循环调用,最后栈不足出错.不会有任何实际作用....你可以加断点自己测试