Next: Grafik: Virtuelle Funktionen
Up: Folien zur AG Objektorientiertes
Previous: Verwendung von virtuellen Funktionen
#include <iostream.h> class Buch { public: Buch(int InventarNummer, char *Beschreibung); ~Buch(); virtual void beschreibe(void); protected: int die_inventarnummer; char *die_beschreibung; }; class BWL : public Buch { public: BWL(int InventarNummer, char *Beschreibung); virtual void beschreibe(void); }; class Informatik : public Buch { public: Informatik(int InventarNummer, char *Beschreibung); virtual void beschreibe(void); }; class Progr : public Informatik { public: Progr(int InventarNummer, char *Beschreibung); virtual void beschreibe(void); }; Buch::Buch(int InventarNummer, char *Beschreibung) { die_inventarnummer = InventarNummer; die_beschreibung = new char [strlen(Beschreibung)+1]; strcpy(die_beschreibung, Beschreibung); } Buch::~Buch() { delete die_beschreibung; } void Buch::beschreibe(void) { cout << "Buch der Kategorie \"Allgemein\"\n" << "Inventarnummer=" << die_inventarnummer << "\n" << "Beschreibung=" << die_beschreibung << endl; } BWL::BWL(int InventarNummer, char *Beschreibung) : Buch(InventarNummer, Beschreibung) {} void BWL::beschreibe(void) { cout << "Buch der Kategorie \"Betriebswirtschaftslehre\"\n" << "Inventarnummer=" << die_inventarnummer << "\n" << "Beschreibung=" << die_beschreibung << endl; } Informatik::Informatik(int InventarNummer, char *Beschreibung) : Buch(InventarNummer, Beschreibung) {} void Informatik::beschreibe(void) { cout << "Buch der Kategorie \"Informatik\"\n" << "Inventarnummer=" << die_inventarnummer << "\n" << "Beschreibung=" << die_beschreibung << endl; } Progr::Progr(int InventarNummer, char *Beschreibung) : Informatik(InventarNummer, Beschreibung) {} void Progr::beschreibe(void) { cout << "Buch der Kategorie \"Programmiersprachen\"\n" << "Inventarnummer=" << die_inventarnummer << "\n" << "Beschreibung=" << die_beschreibung << endl; } void BestandAusgeben(Buch *b[], int size) { for(int i = 0; i < size; i++) b[i]->beschreibe(); } int main() { const int size = 4; Buch pons(4711, "PONS, Globalwörterbuch"); BWL egger(2398, "Egger, Einführung in die ABWL"); Informatik knuth(7882, "Knuth, der Klassiker!"); Progr smith(8991, "Smith, Objectoriented Software in C++"); Buch *Bibliothek[size]; Bibliothek[0] = &pons; Bibliothek[1] = &egger; Bibliothek[2] = &knuth; Bibliothek[3] = &smith; BestandAusgeben(Bibliothek, size); }
![]() | © 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 3/19/1998 |