wind3.cpp

来自「Think in C++ 2nd」· C++ 代码 · 共 37 行

CPP
37
字号
//: C15:Wind3.cpp

// From Thinking in C++, 2nd Edition

// Available at http://www.BruceEckel.com

// (c) Bruce Eckel 1999

// Copyright notice in Copyright.txt

// Late binding with virtual

#include <iostream>

using namespace std;

enum note { middleC, Csharp, Cflat }; // Etc.



class Instrument {

public:

  virtual void play(note) const {

    cout << "Instrument::play" << endl;

  }

};



// Wind objects are Instruments

// because they have the same interface:

class Wind : public Instrument {

public:

  // Redefine interface function:

  void play(note) const {

    cout << "Wind::play" << endl;

  }

};



void tune(Instrument& i) {

  // ...

  i.play(middleC);

}



int main() {

  Wind flute;

  tune(flute); // Upcasting

} ///:~

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?