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 Templates (WS09/10 7.1) 1.1 Erklären Sie wozu in C++ ein Template dient.  Schablone  siehe Skript

3 Templates (WS09/10 7.2) 1.2 Welche Arten von Templates gibt es ?  Funktionstemplate  Klassentemplate Details siehe Skript.

4 Templates (WS09/10 7.3) 1.3 Wo liegt der Hauptanwendungsbereich von Templates? Formatierung von Ausgaben, generell bei Oberflächen/Design Skript: Das Hauptanwendungsgebiert von Klassen-Templates findet sich in der Standard Template Library (STL). Diese Bibliothek besteht aus einer ganzen Reihe von verschiedenen Vorlagen für Klassen und Funktionen, ist international standardisiert und ist damit ein fester Bestandteil der C++ Programmierumgebung. Ein Großteil der Klassen-Templates der STL sind sogenannte Container-Klassen. Ein Container dient der Verwaltung von vielen Objekten eines bestimmten Typs. Der Datentyp der zu verwaltenden Objekte ist Parameter des jeweiligen Templates. Es stehen in der STL eine Reihe verschiedenartiger Container bereits „fertig programmiert“ zur Verfügung. Sie müssen nur noch für den gewünschten Datentyp instanziiert werden.

5 Templates Zusätzliche Übung: Gegeben ist folgender Quelltext: template class Test{ private: T wert; public: Test(T w){ wert = w;} void setWert(T w){ wert = w;} bool assertEquals(T zu_testen){ return wert == zu_testen; } };

6 Templates Zusätzliche Übung: 2.1 Kommentieren Sie die Fett gedruckten Zeilen syntaktisch mit Fachausdrücken Um welche Template-Art handelt es sich hier? template Definition als Klassentemplate, welches einen Typparameter T besitzt class Test{ private: T wert; Privates Attribut wert vom Typ T(Typparameter) public: Test(T w){ wert = w;} Konstruktor, verlangt einen Parameter vom Typ T void setWert(T w){ wert = w;} bool assertEquals(T zu_testen){ Methode verlangt einen Parameter vom Typ T und gibt einen bool zurück return wert == zu_testen; } };

7 Templates Zusätzliche Übung: 2.3 Erzeugen Sie im Hauptprogramm eine Instanz und testen Sie die Klasse mit 2 int Werten Bei Gleichheit soll gleich, ansonsten ungleich ausgegeben werden. int main(){ int a = 5; Test mytest(3); if(mytest.assertEquals(a)){ cout << „gleich“ << endl; }else{ cout << „ungleich“ << endl; } return 1; }

8 Templates Zusätzliche Übung: 2.4 Erweitern Sie das Klassentemplate Test um einen weiteren Typparameter K. Schreiben Sie eine Methode assertEquals die jeweils einen Wert vom Typ T und einen Wert vom Typ K auf Gleichheit prüft. template class Test{ private: T wert; public: Test(T w){ wert = w;} void setWert(T w){ wert = w;} bool assertEquals(T zu_testen){ return wert == zu_testen; } bool assertEquals(K zu_testen){ return wert == zu_testen; } };

9 Templates Zusätzliche Übung: 2.5 Erzeugen Sie im Hauptprogramm eine Instanz und testen Sie die Klasse mit einem int Wert und einem short. Bei Gleichheit soll gleich, ansonsten ungleich ausgegeben werden. int main(){ short a = 5; Test mytest(3); if(mytest.assertEquals(a)){ cout << „gleich“ << endl; }else{ cout << „ungleich“ << endl; } return 1; }


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

Ähnliche Präsentationen


Google-Anzeigen