• c++之虚函数virtual , overriding , overwrite


    先来看下普通的继承:

    class Instrument{
    public:
        void play() const{
            cout<<"Instrument::play"<<endl;
        }
    };
    
    class Wind : public Instrument{
    public:
        void play() const{
            cout<<"Wind::play"<<endl;
        }
    };
    
        Instrument* instrumentObj = new Instrument();
        instrumentObj->play();        //output: Instrument::play
    
        Wind* windObj = new Wind();
        windObj->play();            //output: Wind::play
    
        Instrument* windInsObj = new Wind();    //子类对象指向父类的指针
        windInsObj->play();            //output: Instrument::play
    
        //Wind* InsWindObj = new Instrument();// wrong !父类对象不能指向子类的指针    

    以下是虚函数的继承:

    class Instrument{
    public:
        virtual void play() const{
            cout<<"Instrument::play"<<endl;
        }
    };
    
    class Wind : public Instrument{
    public:
        void play() const{
            cout<<"Wind::play"<<endl;
        }
    };
      Instrument* instrumentObj = new Instrument();
        instrumentObj->play();        //output: Instrument::play
    
        Wind* windObj = new Wind();
        windObj->play();            //output: Wind::play
    
        Instrument* windInsObj = new Wind();    //子类对象指向父类的指针
        windInsObj->play();            //output: Wind::play
    
        //Wind* InsWindObj = new Instrument();// wrong !父类对象不能指向子类的指针

    纯虚函数和抽象类

    纯虚函数使用关键字virtual 并在函数最后加上=0.eg:virtual void fun()=0;

  • 相关阅读:
    libPods.a 无法找到的解决方法
    Mac 必备软件 Quicksilver
    Mac玩老游戏DOOM II
    [转载]The Island Castaway mac版解锁
    看了不到一半同事上培训班时候的示例代码,解决了很多前几个月遇到的问题。
    8月16日 layui使用
    8月14日
    8月13日
    8月12日
    8月9日
  • 原文地址:https://www.cnblogs.com/alazalazalaz/p/4431585.html
Copyright © 2020-2023  润新知