next up previous
Next: Grafik: Virtuelle Funktionen Up: Folien zur AG Objektorientiertes Previous: Verwendung von virtuellen Funktionen

Bsp: Bibliothek

#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);
}


next up previous
Next: Grafik: Virtuelle Funktionen Up: Folien zur AG Objektorientiertes Previous: Verwendung von virtuellen Funktionen

© 1997 Gottfried Rudorfer, C++-AG, Lehrveranstaltungen, Abteilung für Angewandte Informatik, Wirtschaftsuniversität Wien, 3/19/1998