怎样在父类中调用它的子类中的函数?

解决方案 »

  1.   

    非常赞同 blh(老猫) 的说法
      

  2.   

    非常赞同 blh(老猫) 的说法
      

  3.   

    不要耸人听闻,用虚函数完全可以的,MFC的许多类都如此:
    class A
    {
     public:
       void func1()
       {
          func2(); //调虚函数func2
       }
       virtual void func2()
       {
       }
    }class B : public A
    {
       virtual void func2()
       {
           MessageBox( NULL, "Class B Virtual Function", NULL, MB_OK );
       }
    }
    使用时:
    B*  pBVar = new B;
    ((A*)pBVar)->func1();
         jmcooler<签名>
      

  4.   

    To: jmcooler()
    你改成
    A*  pBVar = new A;
    pBVar->func1();
    看看还成不成!
    你那个就不是父类在调子类的函数,你那是子类在调自己的函数!
      

  5.   

    你应该是调用派生类从父类继承的函数吧.虚拟看看<深入浅出MFC> 专门解释过.
      

  6.   

    FlyCom_NT 才算说到点子上去了,用父类的对象的指针可以访问派生类的虚函数。
      

  7.   

    通过模板类可以.
    ATL中的CComCoClass就用了这种办法.