Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Tutorium Software-Engineering SS14 Florian Manghofer.

Ähnliche Präsentationen


Präsentation zum Thema: "Tutorium Software-Engineering SS14 Florian Manghofer."—  Präsentation transkript:

1 Tutorium Software-Engineering SS14 Florian Manghofer

2 (SS11 5.1) 1.1 Korrigieren Sie die Fehler in folgenden Programmzeilen. Geben Sie eine kurze Erklärung. a) int* p = new int*; *p = 100; b) short p = new short(10); c) Mitarbeiter *p; *q = new Mitarbeiter(35); d) Mitarbeiter *p = new Mitarbeiter(35); p.datenausgeben(); e) int p, q; p = &q; int* p = new int(); Aufruf mit new mit () short *p = new short(10); Zeiger auf short p = new Mitarbeiter(35); Zeiger auf neues Objekt zeigen lassen, nicht Wert zuweisen p->datenausgeben(); Zugriff auf Methoden über Zeiger mit -> int *p,q; Nur einem Zeiger kann man Adressen zuweisen Speicherreservierung

3 (SS11 5.2) 1.2 Ergänzen Sie die Klasse Mitarbeiter um einen Elementinitialisierungskonstruktor und eine Methode datenausgeben(), die weder Rückgabewert noch Übergabeparameter hat. class Mitarbeiter { private: long Nummer; string Name; public: Mitarbeiter(long nNummer, string nName):Nummer(nNummer),Name(nName){}; void datenausgeben() { cout << this.Nummer << endl; cout << this.Name << endl; } };

4 Speicherreservierung (SS11 5.3) 1.3 Schreiben Sie die erforderlichen Anweisungen, um den Speicher für ein Objekt der Klasse Mitarbeiter dynamisch zu reservieren und rufen Sie für das Objekt die Methode datenausgeben() auf. Mitarbeiter *franz = new Mitarbeiter(1,“Franz“); //dynamsich erzeugt franz->datenausgeben();

5 verk. Liste (SS11 4.1) 2.1 Kommentieren Sie die fett gedruckten Programmzeilen class Tierliste { private: Tier * H; //Zeiger auf ein Objekt vom Typ Tier als Attribut //Das erste/oberste Objekt der Liste public: Tierliste () : H (0){ } // Konstruktor, setzt Zeiger auf 0 //Zu Beginn ist die Liste leer, daher gibt es kein oberstes/erstes Objekt void insert (Tier * kp){ //Methode zum einfügen eines neuen Objektes //erwartet als Parameter einen Zeiger auf das einzufügende Objekt kp->N = H; //setzt das Attribut N des einzufügenden Objekts auf den Anfang der Liste H //Dadurch wird das ehemalige oberste/erste Objekt als Nachfolgender gespeichert H= kp; //Attribut H auf das neu einzufügende Objekt setzen //oberstes/erstes Objekt der Liste ist das neu eingefügte kp }

6 verk. Liste (SS11 4.2) 2.2 Ergänzen Sie die Klasse Tier um die für eine verkettete Liste nötigen Attribute (passend zur Klasse Tierliste). class Tier { friendclass Tierliste; private: Tier *N; };

7 verk. Liste (SS11 4.3) 2.3 Erklären Sie das Prinzip einer verketteten Liste an den beiden Klassendefinitionen. Visualisieren Sie die ersten beiden „insert“-Vorgänge beginnend mit einer „leeren“ verketteten Liste. Tierliste tl; H0 leere Tierliste Tierliste tl; H 1. insert Tier t1; N0 Tierliste tl; H 2. insert Tier t2; N Tier t1; N 0 Stack Prinzip Neue Objekte auf den Stapel


Herunterladen ppt "Tutorium Software-Engineering SS14 Florian Manghofer."

Ähnliche Präsentationen


Google-Anzeigen