Tutorium Software-Engineering SS14 Florian Manghofer.

Slides:



Advertisements
Ähnliche Präsentationen
Klassen - Verkettete Liste -
Advertisements

1 Funktionstemplates Einbinden von Templates: –Eine *.o Datei, die durch Übersetzen einer Datei nur mit Templates erzeugt wurde, enthält keinen Programmcode.
Abstrakte Klassen Basisklassen sollten in der Regel sehr allgemein sein. Oft ist es nicht notwendig, dass Objekte dieser generellen Basisklassen angelegt.
Objektorientierte Programmierung
DVG Einfache Klassen Einfache Klassen. DVG Einfache Klassen 2 Strukturen Beispiel: Personendaten bestehen aus –String name –String vorname.
Konzepte objektorientierter Systeme
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Definition von Klassen in Java
Objektorientierte Programmierung Definition von Klassen
Java: Objektorientierte Programmierung
Indirekte Adressierung
Java: Grundlagen der Objektorientierung
Klassenvariable (auch Klassendaten bzw. statische Attribute genannt) und statische Methoden.
Klassenvariable. Da man für jede Kuh bzw. jede Henne auf dem Markt den gleichen Preis für ein Liter Milch, bzw. den gleichen Preis für ein Ei bekommt,
Konstruktoren.
Polymorphie (Vielgestaltigkeit)
Dynamischer Speicher. In einer Funktion wird z.B. mit der Deklaration int i; Speicher auf dem sogenannten Stack reserviert. Wenn die Funktion verlassen.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Programmieren mit JAVA
PRJ 2007/1 Stefan Dissmann Motivation Problem: gleiche Datenstrukturen werden für verschiedene Objekte gebraucht: z.B. Listen von Studierenden, Kunden,
Abstrakter Datentyp in C++ I - Klasse -
DVG Klassen und Objekte
DVG Einfache Klassen 1 Einfache Klassen. 2DVG Einfache KlassenStrukturen Beispiel: Personendaten bestehen aus String name String name.
Einführung in die Programmierung Datensammlung
Einführung in die Programmierung Klassendefinition und Objekte
© 2002 Dr. Cavelius - Ley - Pohlig - Taulien Programmierung im Netz und Internet: Einführung in die Programmiersprache Java Teil I 1 Klassen Objekte von.
Seite 1 Interface - Konzept Ein Interface führt einen neuen Datentyp ein: interface Frau {... } Das Interface enthält Deklarationen ( keine Definitionen.
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
Einführung in die Programmierung
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Informatik 1 Letzte Übung.
Aufruf einer Methode eines Objektes vom Typ „Bruch“
CuP - Java Vierte Vorlesung Entspricht ungefähr Kapitel 2.1 des Skriptums Montag, 14. Oktober 2002.
Java-Kurs - 8. Übung Besprechung der Hausaufgabe.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
A) Erklären Sie den Datentyp char. b) Erklären Sie den Datentyp Struct c) Erklären Sie die Wirkungsweise des Operators & bei Anwendung im Zusammenhang.
Java-Kurs - 6. Übung Besprechung der Hausaufgabe
Java-Kurs - 5. Übung Besprechung der Übungsaufgabe Klassen und Objekte
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Gerhard Gröger Einführung in die Programmierung mit Java 5. Vorlesung WS 2002/2003.
Erweiterte Zuweisungskompatibilität. Wie kann man Objekte verschiedener Klassen einer Klassenhierarchie einander zuweisen ?
Objektorientierte Programmierung (OOP)
Namensräume (namespaces). verwendet man umfangreiche eigene und fremde Bibliotheken (Sammlungen von Funktionen) so ist die Wahrscheinlichkeit groß, daß.
Tutorium Software-Engineering SS14 Florian Manghofer.
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
C++ FÜR cOMPUTERSPIELENTWICKLER
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Tutorium Software-Engineering SS14 Florian Manghofer.
Konstruktoren.
Objektorientierung Gliederung von Daten und Funktionen zu Objekten
Java-Kurs - 4. Übung weitere Kontrollstrukturen
Java-Kurs - 5. Übung Das Paradigma der Objektorientierung (OO)
Einführung in die Programmierung mit Java
9. Vererbung und Polymorphie
Implementieren von Klassen
3. Die Datenstruktur Graph 3.2 Repräsentation von Graphen
Grundkurs Informatik 11-13
 Präsentation transkript:

Tutorium Software-Engineering SS14 Florian Manghofer

Templates (WS09/10 7.1) 1.1 Erklären Sie wozu in C++ ein Template dient.  Schablone  siehe Skript

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

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.

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

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

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

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

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