5. Dossier (Prog2/SS05)

Aus FS-MNI-Wiki
Wechseln zu: Navigation, Suche

A 5.2

Loesung:

       Erbende Klasse hat keinen Zugriff auf private Datenkomponenten:  Zeile 30,33,42,45,49,52
       Auf geschuetzte Datenkomponenten dürfen nur Freunde oder abgleitete Klassen zugreifen,
       deshalb kein Zugriff außerhalb A und B: Zeile 41,44,48,51



A 5.3

A aObjekt1; Loesung: a:int(0), ap*:int(0) A:A()

         Destruktor: ~A(),A:A(), a:int(0), ap*:int(0) 

B bObjekt1; Loesung: a:int(0), ap*:int(0) A:A(), b:int(1), bp:*int(0), B:B()

         Destruktor: ~B(), B:B(), b:int(1), bp:*int(0), A:A(), a:int(0), ap*:int(0)


A aObjekt1(1,2);

Loesung: a:int(1), ap*:int(int) A:A(1,2)

         Destruktor: ~A(), A:A(1,2), a:int(1), ap*:int(int) 


B bObjekt1(1,2,3,4);

Loesung: a:int(3), ap*:int(int) A:A(3,4), b:int(1), bp:*int(int), B:B(1,2,3,4)

         Destruktor: ~B(), B:B(1,2,3,4), b:int(1), bp:*int(int), a:int(3), ap*:int(int)

ZA 5.2

Loesung:

Zeile 6:

  • Die Variable "name" und "_vorname" gibt es nicht in der Klasse Person.
  • Den Übergabeparameter "name" gibts nicht.

Zeile 14:

  • Die Klasse solte mit 0 oder o.ä. initialisiert werden.(kein syntaktischer Fehler)

Zeile 15:

  • Konstruktorkopf gibts noch ein zweites Mal in Zeile 18.

Zeile 16:

  • Die Variable "_vorname" gibt es nicht in den Klassen Dozent oder Person.
  • Die Variable "name" gibt es nicht als Übergabeparameter.
  • Der Default konstruktor der Klasse Person wird benutzt.

(Dort solten normalerweise die Variablen "_name" und "_nachname" übergeben werden)

Zeile 19:

  • Der Konstruktor der Klasse Person muss mit den Übergabeparametern "_name" "_vorname" benutzt werden.

Zeile 23:

  • Der Rückgabe- und der Übergabewert vom Zuweisungsoperator muss vom Typ der Klasse Dozent sein.
  • Es darf keine Variable mit einem schonmal benutzten Namen geben, wie hier Dozent.

Zeile 26:

  • Um den Zuweisungsoperator der Klasse Person aufzurufen muss ein "Person::" vor "operator=.." geschrieben werden.

Zeile 28:

  • Rückgabewert (return *this) fehlt.

Zeile 30:

  • Die Variable "name" solte eigentlich geerbt werden (kein syntaktischer Fehler).

Zeile 31:

  • Die Variable "vorname" solte eigentlich geerbt werden (kein syntaktischer Fehler).

Zeile 38:

  • Einer Variablen der Unterklasse (Dozent) darf keine Variable der Oberklasse (Person) zugewiesen werden.

Zeile 39:

  • Die Variable "personalNr" ist Private. Es ist also kein Zugriff von "int main" erlaubt.