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 |