我现在遇到这样一个问题,有两个类其中一个是父类,一个是子类,
父类有一个虚函数,我想在子类中重写这个虚函数,并且在重写之前
继承父类的行为。
请问这样能实现吗?能实现的话怎么做呀???

解决方案 »

  1.   

    base::virtualfun();
    // sub code
    ...
      

  2.   

    void CChinde::Function1(void)
    {
        CParent::Function1();
        // TODO: Your Code
    }
      

  3.   

    可以实现啊,只需在子类的函数之前先调用父类的方法即可!
    class Base:
    {
      protect:
       virtual void func();
    }class Derived: public Base
    {
      protect:
       virtual void func();
    }void Base::func()
    {
       cout<<"this is Base!"<<endl;
    }void Derived::func()
    {
       Base::func()  //先调用父类处理
       //下面写你的子程序代码!
      cout<<"this is derived!"<<endl;
    }
      

  4.   

    虚函数跟普通函数不同的地方在于在编译它时会将它的地址放到虚函数表(vtable)里,这样就实现了函数名重载。这也是类的多态性的重要表现。
      

  5.   

    我发现大家对父类和子类没有几个人有很明确的认识...
    private 和 protected 继承的类,严格的说,是不能称为子类的