Advertisement
Guest User

Nr.29

a guest
Jun 25th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. class Fahrzeug  //-->Abstrakte Klasse
  7. {
  8. public:
  9.     string getName() { return name; }   //Die Kind-Klassen erben diese Methode und initalisieren den Namen der jeweiligen Kind-klassen
  10.     virtual void modellName()=0;        //in der Abstrakten Klasse kann kein Objekt erstellt werden. Ein Objekt kann nur von einer Kind-Klasse über Methoden definiert werden daher 0-->Keine Implementierung
  11.     //alle virtuellen Methoden müssen in der Kind-Klasse definiert werden
  12. protected:                              //muss protected sein damit die Kindklasse ebenso auf diese Eigenschaft zugreifen kann.
  13.     string name;
  14. };
  15.  
  16. class BMW : public Fahrzeug //Abgeleitete Klasse   Klasse BMW erbt von Klasse Fahrzeug
  17.     //Konstruktoren können nie Vererbt!!!! werden
  18. {
  19. public:
  20.     BMW() { name = "BMW: "; }           //Konstruktor
  21.     //"Eigenschaften" wie "Name" können nur in der Klasse initalisiert werde in der diese definiert sind.--> Eigenschaft "Name" ist in der "Fahrzeug"-Klasse definiert
  22.     void modellName() { cout << "M3" << endl; }
  23. };
  24.  
  25. class AUDI : public Fahrzeug //Abgeleitete Klasse
  26. {
  27. public:
  28.     AUDI() { name = "AUDI: "; }         //Konstruktor
  29.     void modellName() { cout << "A5" << endl; }
  30. };
  31.  
  32. void Ausgabe(Fahrzeug &typ)         //Referenzen &typ(<--name kann selber erfunden werden) es wird erst vor der Methode entschieden welche Klasse aufgeruten wird
  33. {                                   //Polymorphie (Vielseitigkeit)
  34.     cout << typ.getName();          //typ. --> enthält das jewilige Objekt    Methode wird in Fahrzeug aufgerufen
  35.     typ.modellName();               //Methode wird in dem jeweiligen Klasse aufgerufen
  36.     cout << endl;
  37. }
  38.  
  39. int main() {
  40.  
  41.     BMW bmw;
  42.     AUDI audi;
  43.  
  44.     Ausgabe(bmw);
  45.     Ausgabe(audi);
  46.  
  47.     /* system("Pause");*/
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement