#include class Audiomodul { public: virtual void process() = 0; // rein virtuell und alle abgeleiteten Klassen müssen es implementieren virtual ~Audiomodul() {} // virtueller Destruktor }; class BassEnhance : public Audiomodul { public: void process() override { printf("process->BassEnhance\n"); } }; class Equalizer : public Audiomodul { public: void process() override { printf("process->Equalizer\n"); } }; int main() { Audiomodul *audiomodul[100]; audiomodul[0] = new BassEnhance(); audiomodul[1] = new Equalizer(); for (int i = 0; i < 2; i++) { audiomodul[i]->process(); } printf("====== Jetzt Module vertauschen ======\n"); // Module können vertauscht werden. Audiomodul *help = audiomodul[0]; audiomodul[0] = audiomodul[1]; audiomodul[1] = help; for (int i = 0; i < 2; i++) { audiomodul[i]->process(); } // Speicher freigeben for (int i = 0; i < 2; i++) { delete audiomodul[i]; } return 0; }