-
使用virtual關鍵字在base class中聲明virtual function。你可以使用指針在derived class中調用和執行virtual function。
-
“virtual void MakeSound() = 0;”這是一個pure virtual function。
-
有至少一個pure virtual function的class稱為abstract class,所以Instrument是一個abstract class。
#include <iostream>
#include <algorithm>using namespace std;class Instrument {
public:virtual void MakeSound() = 0;
};class Accordion: public Instrument {
public:void MakeSound(){cout << "Accordion playing..." << endl;}
};class Piano: public Instrument {
public:void MakeSound(){cout << "Piano playing..." << endl;}
};int main(){Instrument *i1 = new Accordion();// i1->MakeSound();Instrument *i2 = new Piano();// i2->MakeSound();Instrument *instruments[2] = {i1, i2};for(int i = 0; i < 2; i++){instruments[i]->MakeSound();}return 0;
}