C++ Standard Template Library Ausgewählte Kapitel aus Softwaretechnologie
|
|
- Sigrid Junge
- vor 6 Jahren
- Abrufe
Transkript
1 C++ Standard Template Library Ausgewählte Kapitel aus Softwaretechnologie Robert Fritz C++ Standard Template Library (STL) p.1/41
2 Inhalt Einführung Generisches Programmieren Aufbau der C++ Standard Template Library Container (Template Klassen) Sequenzen (vector, list,...) Adaptierte Sequenzen (stack, queue,...) Assoziative Container (set, map,...) Iteratoren Algorithmen (Template Funktionen) C++ Standard Template Library (STL) p.2/41
3 Einführung Schöpfer der STL: Alex Stepanov und Meng Lee (Forschungsprojekt über generische Algorithmen. Vorschläge wurden weitesgehend vom ANSI-Komitee übernommen wurden) Verallgemeinerung von Datenstrukturen und Algorithmen C++ Templates: allgemeines Template<T>, T ist ein verallgemeinerter Parameter Typ Bei der Instantiierung wird der allgemeine Typ durch speziellen Typ ersetzt - Objekte, Pointer, Standardtypen (int, char,...) Änderungen leicht möglich Algorithmen sind globale Funktionen (OOP?) C++ stellt zwei Arten von Templates zur Verfügung: Template Klassen - Container (Listen, Sets, Vektoren,...) Template Funktionen - Algorithmen (Sortier -und Suchfunktionen,...) C++ Standard Template Library (STL) p.3/41
4 Generisches Programmieren Algorithmen werden mit minimalem Wissen über die Datenabstraktion geschrieben und vice versa. Verallgemeinerung von Algorithmen ohne die Effizient zu verlieren. Gleiche Effizienz von spezialisiertem Algorithmus und originalem Algorithmus. Verschiedene Verallgemeinerungsstufen (automatische Auswahl des effizientesten Algorithmus) Mehrere Algorithmen für den selben Zweck auf dem selben Abstraktionslevel. C++ Standard Template Library (STL) p.4/41
5 Verwendung von Template Klassen 1/2 Deklaration und Definition der Template Klassen müssen in einer Header Datei erfolgen. template <class T> class Stack { public: Stack(int = 10) ; ~Stack() { delete [] stackptr ; } int push(const T&); int pop(t&) ; int isempty()const { return top == -1 ; } int isfull() const { return top == size - 1 ; } private: int size ; // number of elements on Stack. int top ; T* stackptr ; }; C++ Standard Template Library (STL) p.5/41
6 Verwendung von Template Klassen 2/2 #include <iostream> #include "stack.h" using namespace std ; void main() { typedef Stack<float> FloatStack ; typedef Stack<int> IntStack ; FloatStack fs(5) ; float f = 1.1 ; cout << "Pushing elements onto fs" << endl ; while (fs.push(f)) { cout << f << ; f += 1.1 ; } cout << endl << "Stack Full." << endl } //... C++ Standard Template Library (STL) p.6/41
7 Verwendung von Template Funktionen template <class T> T max(t a, T b) { return a > b? a : b ; } void main() { } cout << "max(10, 15) = " << max(10, 15) << endl ; cout << "max( k, s ) = " << max( k, s ) << endl ; cout << "max(10.1, 15.2) = " << max(10.1, 15.2) << endl ; C++ Standard Template Library (STL) p.7/41
8 C++ Standard Template Library Grundproblem: n verschiedene Datentypen (int, double, void *,...) m verschiedene Container (vector<>, list<>,...) k Algorithmen (sort, unique,...) Herkömmliche Programmierung: n*m*k verschiedene Implementierungen Templates erlauben, die Algorithmen für beliebige Typen zu implementieren. Voraussetzung ist, dass alle Container eine gewisse Minimalschnittstelle unterstützen. Diese Minimalanforderungen an die Container sind in verschiedene Gruppen gegliedert. Nicht alle Algorithmen arbeiten mit allen Container zusammen. C++ Standard Template Library (STL) p.8/41
9 C++ Standard Template Library Die Standard Template Library ist Bestandteil der C++ Standardbibliothek. Alle Container und Algorithmen sind im Standard Namespace definiert. using namspace std; oder std::vector<int> vec; C++ Standard Template Library (STL) p.9/41
10 Allgemeine Ziele der STL Generisch Keine Festlegung auf konkrete Typen Effizient Nicht langsamer als handgeschriebener Code Vollständig Behandelte Aspekte werden vollständig abgedeckt Primitiv Keine Bündelung unterschiedlicher Aspekte Typsicher Erhalt der statischen Typisierung Erweiterbar Applikationsspezifische Spezialisierung mit vertretbarem Aufwand C++ Standard Template Library (STL) p.10/41
11 STL: Beziehungen zwischen den Konzepten C++ Standard Template Library (STL) p.11/41
12 STL Iteratoren Iteratoren sind fundamental, um Container und Algorithmen verwenden zu können Traversierung von Containern nur mit Iteratoren möglich Jeder Container stellt je nach Datenstruktur die geeigneten Iteratoren bereit Vorwärtsiteratoren, Bidirektionale Iteratoren,... Iterator: Verallgemeinerung eines Pointers *iter;... Iteratoren halten bestimmte Werte Ein Paar von Iteratoren kann einen Bereich von Werten abdecken begin(); end(); Pointerarithmetik ist übertragbar auf Iteratoren iter++, iter += 5 v.end kann nicht dereferenziert werden, enthält kein Element C++ Standard Template Library (STL) p.12/41
13 Pointer: STL Iteratoren: Verallgemeinerung int* find(int* array, int n, int x) { int* p = array; for (int i = 0; i < n; i++) { if (*p == x) return p; // gefunden p++; } return 0; // nicht gefunden } Iterator: template<typename T, typename P> P find(p first, P past_end, T x) { while (first!= past_end && *first!= x) first++; return first; // Ergebnis } C++ Standard Template Library (STL) p.13/41
14 STL Iteratoren: Input Iterator Nur lesender Zugriff: x = *iter; Nächstes Element: iter++; ++iter; Vergleichen: iter1 == iter2; iter1!= iter2 Erzeugen: Copy-Konstruktor, Assignment-Operator Beispiel: template <class InputIterator, class T> InputIterator find (InputIterator first, InputIterator last, const T& value) { while (first!= last && *first!= value) ++first; return first; } C++ Standard Template Library (STL) p.14/41
15 STL Iteratoren: Output Iterator Nur schreibender Zurgriff: *iter = x Vergleichsoperator ist nicht implementiert Lesender Zugriff ist nicht möglich Beispiel: template <class InputIterator, class OutputIterator> OutputIterator copy (InputIterator first, InputIterator last, OutputIterator result) { while (first!= last) *result++ = *first++; return result; } C++ Standard Template Library (STL) p.15/41
16 STL Iteratoren: Kategorien Vorwärts Iterator: Verschmelzung von Input und Output Iterator Lesender Zugriff: x = *iter; Schreibender Zugriff: *iter = x; Bidirektionaler Iterator: Wie Vorwärts Iterator Nächstes Element vorwärts: iter++; ++iter; Nächstes Element rückwärts: iter ; iter; C++ Standard Template Library (STL) p.16/41
17 STL Iteratoren: Kategorien Random Access Iterator (vector, deque): Wie bidirektionaler Iterator Wahlfreier Zugriff: iter[]; Nächstes Element: iter += n; iter -= n; Vergleiche: iter1 < iter2,... C++ Standard Template Library (STL) p.17/41
18 STL Iteratoren: Beispielimplementierung template <class Container> class back_insert_iterator { protected: Container* container; public: typedef Container typedef void container_type; value_type; explicit back_insert_iterator(container& x) : container(&x) {} }; back_insert_iterator<container>& operator=(const typename Container::value_type& value) { container->push_back(value); return *this; } back_insert_iterator<container>& operator*() { return *this; } back_insert_iterator<container>& operator++(); //... C++ Standard Template Library (STL) p.18/41
19 STL Funktionen Bestimmte Algorithmen akzeptieren Funktionen als Argumente. Beispiel std::for_each(): void printelement(int value) { std::cout << "The list contains " << value << std::endl; } int main() { std::list<int> alist;... std::for_each(alist.begin(), alist.end(), printelement); } C++ Standard Template Library (STL) p.19/41
20 STL Function Objects operator()() ist als Member Funktion implementiert Wird ein Function Object benutzt wird der function call operator aufgerufen Beispiel std::find_if(): class biggerthan { public: const int testvalue; biggerthan(int x) : testvalue(x) { } }; bool operator()(int val) const { return val > testvalue; } list<int>::iterator firstbig = find_if(alist.begin(), alist.end(), biggerthan(12)); C++ Standard Template Library (STL) p.20/41
21 STL Container STL bietet Container-Datenstrukturen an Container können verschiedener Typen halten: fundamentale Typen (int, char,...) Pointer benutzerdefinierte Datentypen Container können keine Referenzen halten Schnittstellen weitestgehend vereinheitlicht Es werden folgende Datenstrukturen angeboten Sequenzen (vector, deque, list, slist, bit vector) Adaptierte Sequenzen (stack, queue, priority queue) Assoziative Container (set, map, multiset, multimap) C++ Standard Template Library (STL) p.21/41
22 Sequence Container Elemente sind strikt linear angeordnet Unterstützten Einfügen und Löschen von Elementen Typen: Front Insertion Sequence Back Insertion Sequence Front und Back Insertion Sequence C++ Standard Template Library (STL) p.22/41
23 Assoziative Container Unterstützten effizientes Auffinden von Elementen über Keys Unterstützten Einfügen und Löschen von Elementen Elemente können nicht an einer bestimmten Position eingefügt werden Key ist entweder das Element selbst (set) oder ein ein spezieller Wert des eingefügten Elements Keys dürfen nicht verändert werden Typen: Simple Associative Container Pair Associative Container Sorted Associative Container Unique Associative Container Multiple Associative Container... C++ Standard Template Library (STL) p.23/41
24 STL Container: vector Sequentieller Container Verallgemeinerung eines gewöhnlichen C Arrays Indizierte Datenstruktur, Zugriff mittels operator[] möglich Unterschiede zu normalen Arrays: Größe des Vektors ändert sich dynamisch Neue Elemente können überall eingefügt werden (effektiv jedoch nur am Ende, im schlimmsten Fall müssen alle Elemente verschoben werden - vergleiche deque) Ein Vektor weiß mehr über sich als ein normales Array: Größe potentielle Größe Wieviele Elemente er aufnehmen kann ohne neuen Speicher allokieren zu müssen Einfügen in einen Vektor ist C++ Standard Template Library (STL) p.24/41
25 STL Container: vector Operationen Copy Konstruktor muss definiert sein Generische Algorithmen verwenden Operatoren: operator==(), operator<(), operator=() Initialisierung vector<int> vec_one(10,0); Initialisierung durch Zuweisung: vector<int> vec_two(vec_two); Initialisierung durch Elemente aus anderen Containern vector<int> vec(alist.begin(), alist.end()); Zuweisung durch assign() vec.assign(alist.begin(), alist.end()); vec.assign(3, 7);... C++ Standard Template Library (STL) p.25/41
26 STL Container: vector Typen Type value type const iterator reverse iterator const reverse iterator reference const reference pointer const pointer size type difference type allocator type Definition The type of the elements maintained by the vector. An iterator that does not allow modification of the underlying sequence. An iterator that moves in a backward direction. A combination constant and reverse iterator. A reference to an underlying element. A reference to an underlying element that will not permit the element to be modified. A pointer to an underlying element. A constant pointer to an underlying element. An unsigned integer type, used to refer to the size of containers. A signed integer type, used to describe distances between iterators. The type of allocator used to manage memory for the vector. C++ Standard Template Library (STL) p.26/41
27 STL Container: vector Member Funktionen 1/2 Indizieren eines Vektors vec[1] = 17; cout << vec[1] << endl; Größenabfragen size() - Anzahl der Elemente capacity() - reservierter Speicher max_size() - maximale Größe empty() - effizienter als size() zu 0 zu vergleichen Größenänderungen vec.reserve(20); vec.resize(12, 0); C++ Standard Template Library (STL) p.27/41
28 STL Container: vector Member Funktionen 2/2 Einfügen und Löschen von Elementen: Einfügen kann in schlechtesten Fall O(n) Zeit benötigen vec.push_back(21) - sehr effizient, wenn genügend Speicher reserviert ist vec.pop_back() insert: vector<int>::iterator pos = find(v.begin(), v.end(), 7); // then insert the 12 before the 7 v.insert(pos, 12); v.insert(pos, 6, 14); // insert six copies of 14 erase: v.erase(where); v.erase(where, v.end()); C++ Standard Template Library (STL) p.28/41
29 list: Bidirektionale Iteratoren Doppelt verlinkt Liste ist nicht unbedingt geordnet Weitere Sequenzen Auf Elemente kann nicht über einen Index zugegriffen werden Einfügen und Löschen verursacht konstante Kosten slist: Nur vorwärts Iteratoren Einfach verlinkte Liste Kosten wie list deque (Doppelschlange): Ähnlich wie vector Auf Elemente kann über Index zugegriffen werden operator[] Einfügen am Anfang und am Ende in konstanter Zeit, ansonsten in lineare Zeit C++ Standard Template Library (STL) p.29/41
30 Verfügen über keine Iteratoren. stack: LIFO Adaptierte Sequenzen Memeber Funktionen: empty(), size(), top(), push(newelement), pop() vector kann auch als Stack verwendet werden queue: FIFO Member Funktionen: empty(), size(),front(),back(), push(newelement), pop() priority queue: Oberstes Element ist immmer das größte Element C++ Standard Template Library (STL) p.30/41
31 STL Container: set Sammlung von Objekten (jedes Objekt kommt nur einmal vor) set ist immer geordnet (Objekte müssen operator<() implementiert haben) Optimiert für Einfüge- und Löschoperationen und Suchoperationen Instantiierung: std::set<int> set_one; std::set<int, std::greater<int> > set_two; Einfügen nur mit insert: std::set<int> set_one; std::set<int, std::greater<int> > set_two; C++ Standard Template Library (STL) p.31/41
32 STL Container: Mengenoperationen auf set Subset Test: includes(a.begin(), a.end(), b.begin(), b.end()) set_union() set_intersection() set_difference() set_symmetric_difference() C++ Standard Template Library (STL) p.32/41
33 Weitere Assoziative Container set map multiset multimap hash set hash map hash multiset hash multimap hash (Funktion) C++ Standard Template Library (STL) p.33/41
34 Non-mutating algorithms Mutating algorithms Algorithmen for each: Wendet eine Funktion auf alle Elemente an: template <class Arg> class out_times_x : private unary_function<arg,void> { private: Arg multiplier; public: out_times_x(const Arg& x) : multiplier(x) { } void operator()(arg& x) { cout << x * multiplier << " " << endl; } }; for_each(v.begin(), v.end(), f2); C++ Standard Template Library (STL) p.34/41
35 Non-mutuating: find, find if find: list<int>::iterator result = find(l.begin(), L.end(), 7); find if: struct isleapyear { bool operator()(unsigned int year) const { if (0 == year % 400) return true; if (0 == year % 100) return false; if (0 == year % 4) return true; return false; } }; list<int>::iterator firstleap = find_if(alist.begin(), alist.end(), isleapyear()); C++ Standard Template Library (STL) p.35/41
36 Non-mutuating: adjacent find, find first of adjacent if: findet nebeneinander liegende Elemente: int A[] = {1, 2, 3, 3, 4, 6, 5, 7, 8}; const int N = sizeof(a) / sizeof(int); const int* p = adjacent_find(a, A + N, greater<int>()); const int* q = adjacent_find(a, A + N); find first of: const char* WS = "\t\n "; const int n_ws = strlen(ws); char* s = "This sentence contains five words."; char* end = find_first_of(s, s + strlen(s), WS, WS + n_ws); WS, WS + n_ws); printf("first word of s: %.*s\n", end - s, s); C++ Standard Template Library (STL) p.36/41
37 Weiter Non-mutating Algorithmen count count_if mismatch equal search: findet die erste Subsequenzen: search(a.begin(), a.end(), b.begin(), b.end()); search_n: int* result = search_n(first, last, count, val); find_end: findet die letzte Subsequenzen C++ Standard Template Library (STL) p.37/41
38 copy: Mutating Algorithmen copy(v.begin(), v.end(), ostream_iterator<int>(cout, )); copy n: copy(v.begin(), 3, l.begin()) copy backward: copy_backward(x.begin(), X.begin() + 3, X.end()); swap, iter swap, swap ranges: swap(x, y); swap_ranges(v1.begin(), V1.end(), V2.begin()); transform: transform(v1.begin(), V1.end(), V2.begin(), V3.begin(), plus<int>()); V1: V2: V3: C++ Standard Template Library (STL) p.38/41
39 Weitere: Mutating Algorithmen fill, fill n generate, generate n remove, remove if, remove copy, remove copy if unique, unique copy reverse, reverse copy rotate, rotate copy random shuffle, random sample, random sample n C++ Standard Template Library (STL) p.39/41
40 Sortieren: Weitere Algorithmen sort, stable sort, partial sort, partial sort copy is sorted nth element Binary search (sortierte Container): lower bound, upper bound, equal range, binary search Mergen: merge: zwei sortierte Container zu einem sortierten inplace merge Mengen Operationen: includes, set union, set intersection, set difference, set symmetric difference C++ Standard Template Library (STL) p.40/41
41 Referenzen leif/foundation/html/stdlibug/booktoc.html C++ Standard Template Library (STL) p.41/41
Einführung in die STL anhand eines ausgewählten Beispiels
Einführung in die STL anhand eines ausgewählten Beispiels Frank M. Thiesing http://home.t-online.de/home/ frank.thiesing/stl/stl-folien.pdf Inhalt Überblick über die C++ STL Container Iteratoren Algorithmen
MehrProgrammierkurs. SoSe 2013. Markus Geveler Inst. f. Applied Mathematics, TU Dortmund. markus.geveler@math.tu-dortmund.de
Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 8 Was machen wir heute hier? mehr zu pointern und Speicher mehr zu pointern
MehrObjektorientierte Programmierung mit C++ Vector und List
Vector und List Ziel, Inhalt Wir lernen die Klassen vector und list aus der Standard-C++ Library kennen und anwenden. In einer Übung wenden wir diese Klassen an um einen Medienshop (CD s und Bücher) zu
MehrProgrammierung in C/C++
Programmierung in C/C++ Philipp Lucas phlucas@cs.uni-sb.de 26. 01. 2009 Philipp Lucas, CDL, UdS 1 Heute Templates STL Philipp Lucas, CDL, UdS 2 Grundlagen In der Übung: IntArray für sicheren Zugriff auf
MehrIn der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch
Kapitel Matrizen in C++ In der Computersprache C ist die Standardmethode zur Behandlung von Matrizen durch 1 const int n=10; 3 double a[n][n]; gegeben. Allerdings gibt es bei dieser Methode eine Reihe
MehrZiel, Inhalt. Programmieren in C++ Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind
Templates und Containerklassen Ziel, Inhalt Wir lernen wie man Funktionen oder Klassen einmal schreibt, so dass sie für verschiedene Datentypen verwendbar sind Templates und Containerklassen 1 Ziel, Inhalt
MehrGrundlagen der Informatik. Prof. Dr. Stefan Enderle NTA Isny
Grundlagen der Informatik Prof. Dr. Stefan Enderle NTA Isny 2 Datenstrukturen 2.1 Einführung Syntax: Definition einer formalen Grammatik, um Regeln einer formalen Sprache (Programmiersprache) festzulegen.
Mehr(allgemeine) OOP in C++ Klassen und header-files Konstruktorn / Destruktoren Speicherverwaltung C++ Standard Library / SLT
Architektur Übersicht (allgemeine) OOP in C++ Polymorphie Virtuelle Funktionen Kompilieren Linken dynamische/statische Bibliotheken Tutorial: vs2008+ogre+(campus modell) Architektur (allgemeine) OOP in
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 10. Juli 2007 Fortgeschrittene Template-Techniken C++ bietet eine Vielfalt weiterer Techniken für Templates: Templates
MehrProgrammieren in C++ Arrays, Strings und Zeigerarithmetik
Programmieren in C++ Arrays, Strings und Zeigerarithmetik Inhalt Eindimensionale C-Arrays C-Strings und Strings (Mehrdimensionale C-Arrays) Arrays und Vektoren (C++) Unique Pointers (C++11) Zeigerarithmetik
MehrJava Einführung Collections
Java Einführung Collections Inhalt dieser Einheit Behälterklassen, die in der Java API bereitgestellt werden Wiederholung Array Collections (Vector, List, Set) Map 2 Wiederholung Array a[0] a[1] a[2] a[3]...
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 1)
DAP2-Programmierpraktikum Einführung in C++ (Teil 1) Carsten Gutwenger 11. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Mein erstes C++-Programm Namensräume
MehrJava Generics & Collections
Java Praktikum Effizientes Programmieren (Sommersemester 2015) Dennis Reuling Agenda 1 2 3 1 / 30 Praktikum Effizientes Programmieren (Sommersemester 2015) Java Subtyping Teil 1 2 / 30 Praktikum Effizientes
MehrFunktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Gute Lösung:
Funktionen Häufig müssen bestimmte Operationen in einem Programm mehrmals ausgeführt werden. Schlechte Lösung: Der Sourcecode wird an den entsprechenden Stellen im Programm wiederholt Programm wird lang
Mehr1. Übung zu "Numerik partieller Differentialgleichungen"
1. Übung zu "Numerik partieller Differentialgleichungen" Simon Gawlok, Eva Treiber Engineering Mathematics and Computing Lab 22. Oktober 2014 1 / 15 1 Organisatorisches 2 3 4 2 / 15 Organisatorisches Ort:
MehrC++-Zusammenfassung. H. Schaudt. August 18, 2005
C++-Zusammenfassung H. Schaudt August 18, 2005 1 Datentypen 1.1 Grunddatentypen int (-32xxx bis +32xxx, implementerungs-abhängig) char -128 bis +128 float double bool (C++) int und char sind austauschbar:
MehrCodingstandard. Softwareentwicklung Praktikum Stand: 27.02.2008
I. Einleitung II. Codingstandard Softwareentwicklung Praktikum Stand: 27.02.2008 Wie in der Vorlesung schon ausgeführt wurde, ist die Lesbarkeit und Wartbarkeit des Sourcecodes ein sehr wichtiges Kriterium
MehrEinführung in C++ mit Microsoft VS
Einführung in C++ mit Microsoft VS Gliederung Allgemeines zu C++ und Unterschiede zu Java Header-Files Zeiger/Strukturen Namespaces Programmierstil Einführung in Microsoft VS Projekte und Solutions Debugger
MehrMethoden. von Objekten definiert werden, Methoden,, Zugriffsmethoden und Read-Only
Methoden Wie Konstruktoren und Destruktoren zum Auf- und Abbau von Objekten definiert werden, Wie inline-methoden Methoden,, Zugriffsmethoden und Read-Only Only- Methoden einzusetzen sind, Der this-pointer
Mehr2. Semester, 2. Prüfung, Lösung
2. Semester, 2. Prüfung, Lösung Name Die gesamte Prüfung bezieht sich auf die Programmierung in C++! Prüfungsdauer: 90 Minuten Mit Kugelschreiber oder Tinte schreiben Lösungen können direkt auf die Aufgabenblätter
MehrEinführung in C++ Operatoren überladen (Klassen)
Einführung in C++ Operatoren überladen (Klassen) Operatoren überladen Die Überladung von Operatoren ermöglicht es, vorhandene Operatoren (+,-,...) auch auf Objekte von Klassen anzuwenden. Die meisten der
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS2013/14 Inhalt Übung(Aufklärung) Vererbung(wdh.) Initilisierung bei Vererbung
MehrVorkurs C++ Programmierung
Vorkurs C++ Programmierung Klassen Letzte Stunde Speicherverwaltung automatische Speicherverwaltung auf dem Stack dynamische Speicherverwaltung auf dem Heap new/new[] und delete/delete[] Speicherklassen:
MehrC++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen
C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,
Mehr10. Klassen. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
10. Klassen Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Objektorientierte Programmierung!Das Konzept der Klassen!Members!Objekte!Konstruktoren und Destruktoren!this-Pointer!Public und Private
MehrDer C++ Crashkurs v1.0
Der C++ Crashkurs v1.0 Daniel Stöckel, M. Sc. October 14, 2013 1 Grundlegendes 1.1 Das erste Programm Wir beginnen mit einem einfachen Hello world Programm. Listing 1: hello world.cpp // Einbinden der
MehrKlausur zu Objektorientierter Softwareentwicklung in C++ 4. Februar 2003 (WS 2002/2003) Beispiellösung
Klausur zu Objektorientierter Softwareentwicklung in C++ 4. Februar 2003 (WS 2002/2003) Beispiellösung Bearbeitungszeit: 120 Minuten NICHT MIT BLEISTIFT SCHREIBEN!!! Name: Vorname: Matrikelnummer: Aufgabe
MehrModul 122 VBA Scribt.docx
Modul 122 VBA-Scribt 1/5 1 Entwicklungsumgebung - ALT + F11 VBA-Entwicklungsumgebung öffnen 2 Prozeduren (Sub-Prozeduren) Eine Prozedur besteht aus folgenden Bestandteilen: [Private Public] Sub subname([byval
MehrC allgemein. C wurde unter und für Unix entwickelt. Vorläufer sind BCPL und B.
C-Crash-Kurs Eine kurze, keinesfalls erschöpfende Einführung in die Sprache C für Studierende, die eine strukturierte imperative Programmiersprache beherrschen. Die Vorstellung erfolgt am Beispiel von
MehrGrundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme
Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Teil 1: Wiederholung C Heutige Agenda Nutzereingaben verarbeiten Teil 2: Grundlagen in C++ Erstes
MehrEinführung in die C++ Programmierung für Ingenieure
Einführung in die C++ Programmierung für Ingenieure MATTHIAS WALTER / JENS KLUNKER Universität Rostock, Lehrstuhl für Modellierung und Simulation 14. November 2012 c 2012 UNIVERSITÄT ROSTOCK FACULTY OF
MehrAlDaBi Prak+kum WS 14/15 René Rahn
AlDaBi Prak+kum WS 14/15 René Rahn Basierend auf Ausarbeitung von David Weese 2010/11 Prak;kum h"p://www.mi.fu- berlin.de/w/abi/aldabiws14prak>kum Abgabe der Lösungen Abgabe per Subversion: Heute kurze
MehrMeeting C++ C++11 R-Value Referenzen
Meeting C++ Detlef Wilkening http://www.wilkening-online.de 09.11.2012 Inhalt Motivation L-Values und R-Values R-Value Referenzen Move Semantik std::move Funktionen mit R-Value-Referenz Parametern Fazit
MehrEinführung in die C++ STL anhand eines ausgewählten Beispiels
Einführung in die C++ STL anhand eines ausgewählten Beispiels Frank M. Thiesing 15.10.2001 http://home.t-online.de/home/frank.thiesing/stl/stl.html Foliensatz: http://home.t-online.de/home/frank.thiesing/stl/stl-folien.pdf
MehrÜbung zur Vorlesung Programmieren in C
Übung zur Vorlesung Programmieren in C 6 Pointers Marvin Gülker Ruhruniversität Bochum Wintersemester 2015/2016 Marvin Gülker (Ruhruniversität Bochum) 6 Pointers Wintersemester 2015/2016 1 / 29 Gliederung
MehrObjektorientierte Programmierung
Objektorientierte Programmierung 1 Geschichte Dahl, Nygaard: Simula 67 (Algol 60 + Objektorientierung) Kay et al.: Smalltalk (erste rein-objektorientierte Sprache) Object Pascal, Objective C, C++ (wiederum
MehrObjektorientiertes Programmieren für Ingenieure
Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ 18 2 Von C zu C++ 2.2.2 Referenzen und Funktionen Referenzen als Funktionsparameter Liefert eine Funktion einen
MehrType Erasure in Java 5. Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe
Type Erasure in Java 5 Helmi Jouini Institut für Theoretische Informatik Universität Karlsruhe Warum Generics? Containerklassen in Java 1.4 sind generisch nutzbar aber typunsicher. Public class LinkedList
MehrGliederung. Tutorium zur Vorlesung. Gliederung. Gliederung. 1. Gliederung der Informatik. 1. Gliederung der Informatik. 1. Gliederung der Informatik
Informatik I WS 2012/13 Tutorium zur Vorlesung 1. Alexander Zietlow zietlow@informatik.uni-tuebingen.de Wilhelm-Schickard-Institut für Informatik Eberhard Karls Universität Tübingen 11.02.2013 1. 2. 1.
MehrUlla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp
Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden mitp Inhaltsverzeichnis Einleitung 19 Grundlagen 21 Entwicklung und Eigenschaften von C++ 22 Objektorientierte Programmierung 24 Erstellen
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2014/2015 Wirtschaftsingenieur Bachelor 4. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für ein Baumkataster sollen für maximal 500 Bäume Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Nummer Bauminfo Baumart Hoehe Baum Umfang
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 3. Juli 2007 Ausnahmenbehandlungen #include #include OutOfMemory.C using namespace std; int main()
MehrHochschule Darmstadt Informatik-Praktikum (INF 1) WS 2015/2016 Wirtschaftsingenieur Bachelor 5. Aufgabe Datenstruktur, Dateieingabe und -ausgabe
Aufgabenstellung Für eine Hausverwaltung sollen für maximal 500 Wohnungen Informationen gespeichert werden, die alle nach der gleichen Weise wie folgt strukturiert sind: Art Baujahr Wohnung Whnginfo Nebenkosten
MehrZusammengesetzte Datentypen -- Arrays und Strukturen
Zusammengesetzte Datentypen -- und Strukturen Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14
MehrC++ - Funktionen und mehr. Kerstin Gößner und Ralf Wondratschek
C++ - Funktionen und mehr Kerstin Gößner und Ralf Wondratschek Übersicht Deklaration, Definition und Initialisierung Variablen- und Konstantendeklaration Funktionsaufrufe und rückgabewerte Technische Grundlage
MehrJavakurs 2013 Objektorientierung
Javakurs 2013 Objektorientierung Objektorientierte Programmierung I Armelle Vérité 7 März 2013 Technische Universität Berlin This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
MehrPraktikum Betriebssysteme 1. Aufgabe (1)
FG TECHNISCHE INFORMATIK U BS 041 01 TH 09 Praktikum Betriebssysteme 1. Aufgabe (1) Es wird ein unter LINUX lauffähiges C++-Programm ptab, mit dem Informationen über die Partitionierung von Festplatten
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Sommer 2014, 16. Juli 2014 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt) Name: Matrikelnr.:
MehrGrundlagen der Informatik Generische Klassen
Grundlagen der Informatik Generische Klassen Generische Klassen, das Java-Collection-Framework und mehr Generische Programmierung Beobachtung: In vielen Problemstellungen hängt der grundsätzliche Aufbau
MehrSchnelles Prototyping (Rapid Application Development, RAD)
Schnelles Prototyping (Rapid Application Development, RAD) Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 2
MehrGenerische Datenstrukturen
Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Softwaretechnologie, Prof. Uwe Aßmann 1 2 Trends in der Softwareentwicklung
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 04 Referenzen, Overloading, Klassen(hierarchien) Clemens Lang T2 18. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/13 Organisatorisches Nächster Übungstermin
MehrSelbststudium OOP5 21.10.2011 Programmieren 1 - H1103 Felix Rohrer
Kapitel 4.1 bis 4.3 1. zu bearbeitende Aufgaben: 4.1 4.1: done 2. Was verstehen Sie unter einem "Java-Package"? Erweiterungen verschiedener Klassen welche in Java benutzt werden können. 3. Sie möchten
MehrProgrammieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer
Programmieren 3 C++ Prof. Peter Sommerlad Fredy Ulmer Was Sie erwartet: Modernes C++ anwenden o ISO 14882 ist Norm für C++! o kein schlechteres Java, sondern mächtiger Moderne Standardbibliotheken anwenden
MehrEinführung in die Programmierung mit C++
Seite 1 Einführung in die Programmierung mit C Teil IV - Weiterführende Themen 16. SIMD Programmierung Was bedeutet SIMD Seite SIMD Single-Instruction, Multiple-Data, also eine Instruktion, mehrere Daten
Mehr12. Vererbung. Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)
12. Vererbung Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Vererbung Konzept!Protected Section!Virtuelle Mitgliedsfunktionen!Verwendung von Vererbung Copyright: M. Gross, ETHZ, 2003 2 Vererbung!
MehrTechnische Infor matik 2 C/C++-Kurs. Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1
Technische Infor matik 2 C/C++-Kurs Datenabstraktion (Klassen) 2005 AG Rechner netze 4.1 Overloading Überladene Funktionen Auswahl einer Funktion anhand ihrer Signatur Signatur : Name + Parameter Rückgabe-Wer
MehrWidmung... 5. Einleitung... 15. Vorwort 15 Übersicht zu diesem Buch 17. 1 Einführung in die Welt der Objektorientierung... 21
Inhaltsverzeichnis Widmung........................................ 5 Einleitung...................................... 15 Vorwort 15 Übersicht zu diesem Buch 17 1 Einführung in die Welt der Objektorientierung.........
MehrJava Einführung Methoden in Klassen
Java Einführung Methoden in Klassen Lehrziel der Einheit Methoden Signatur (=Deklaration) einer Methode Zugriff/Sichtbarkeit Rückgabewerte Parameter Aufruf von Methoden (Nachrichten) Information Hiding
MehrPIWIN I. Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I. Vorlesung 3 SWS WS 2007/2008
PIWIN I Kap. 7 Objektorientierte Programmierung - Einführung 1 PIWIN I Praktische Informatik für Wirtschaftsmathematiker, Ingenieure und Naturwissenschaftler I Vorlesung 3 SWS WS 2007/2008 FB Informatik
MehrC vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg
C vs. C++ Sebastian Meyer Universität Hamburg Proseminar C - Grundlagen und Konzepte 2013 1 / 31 Gliederung 1 Einführung 2 Vergleich der Spracheigenschaften 3 Neue Sprachelemente in C++ 4 Fazit 5 Zusammenfassung
MehrAlDaBi Praktikum WS 15/16 Hannes Hauswedell, Johannes Röhr, Jongkyu Kim
AlDaBi Praktikum WS 15/16 Hannes Hauswedell, Johannes Röhr, Jongkyu Kim Basierend auf Ausarbeitung von Rene Rahn & David Weese 2010/11 Praktikum http://www.mi.fu-berlin.de/w/abi/aldabiws15praktikum Literatur
MehrFortgeschrittene C++-Programmierung
Vorlesung: "Fortgeschrittene C++-Programmierung" 16.04.2009 Fortgeschrittene C++-Programmierung SS 2009 Teil 1 Sandro Andreotti - andreott@inf.fu-berlin.de 1 Vorlesung: "Fortgeschrittene C++-Programmierung"
MehrII. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:
Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen
MehrHEUTE. Datenstrukturen im Computer. Datenstrukturen. Rekursion. Feedback Evaluation. abstrakte Datenstrukturen
9.2.5 HUT 9.2.5 3 atenstrukturen im omputer atenstrukturen ie beiden fundamentalen atenstrukturen in der Praxis sind rray und Liste Rekursion Feedback valuation rray Zugriff: schnell Umordnung: langsam
MehrEinführung in die C-Programmierung
Einführung in die C-Programmierung Warum C? Sehr stark verbreitet (Praxisnähe) Höhere Programmiersprache Objektorientierte Erweiterung: C++ Aber auch hardwarenahe Programmierung möglich (z.b. Mikrokontroller).
MehrC++ - Einführung in die Programmiersprache Polymorphismus und Vererbung. Eltern
C++ - Einführung in die Programmiersprache Polymorphismus und Vererbung Eltern Kind Kind Vererbung Definition von Klassen auf Basis von bestehenden Klassen. Implementierung von ist ein. bildet ein hierarchisches
Mehr12) Generische Datenstrukturen
12) Generische Datenstrukturen Prof. Dr. rer. nat. habil. Uwe Aßmann Lehrstuhl Softwaretechnologie Fakultät für Informatik TU Dresden Version 09-0.2, 24.11.08 Softwaretechnologie, Prof. Uwe Aßmann 1 mpfohlene
Mehr1 Polymorphie (Vielgestaltigkeit)
1 Polymorphie (Vielgestaltigkeit) Problem: Unsere Datenstrukturen List, Stack und Queue können einzig und allein int-werte aufnehmen. Wollen wir String-Objekte, andere Arten von Zahlen oder andere Objekttypen
MehrGrundlagen. Die Komponenten eines C Programms. Das erste Programm
Grundlagen 1. Die Komponenten eines C Programms 2. Ein Programm erzeugen und übersetzen 3. Variablen Deklarieren und Werte zuweisen 4. Zahlen eingeben mit der Tastatur 5. Arithmetische Ausdrücke und Berechnungen
MehrEinführung in die Programmierung (EPR)
Goethe-Center for Scientific Computing (G-CSC) Goethe-Universität Frankfurt am Main Einführung in die Programmierung (EPR) (Übung, Wintersemester 2014/2015) Dr. S. Reiter, M. Rupp, Dr. A. Vogel, Dr. K.
MehrDistributed Computing Group
JAVA TUTORIAL Distributed Computing Group Vernetzte Systeme - SS 06 Übersicht Warum Java? Interoperabilität grosse und gut dokumentierte Library weit verbreitet Syntax sehr nahe an C Erfahrung: Java wird
MehrInformatik I (D-MAVT)
Informatik I (D-MAVT) Übungsstunde 1 simon.mayer@inf.ethz.ch Distributed Systems Group, ETH Zürich kurze Stunden mit Stoffueberblick -> mehr Zeit fuer Fragen This semester s menu... Imperative Programmierung
Mehrequals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32
Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester 2010 1 / 32 equals und hashcode SortedSet NavigableSet Assoziative Container 2 / 32 HashSet mit eigener Klasse Wie kann man einen
MehrJavakurs für Anfänger
Javakurs für Anfänger Einheit 02: Klassen & Objekte Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme Heutige Agenda 1. Teil: Klassen Grundstruktur einer Java-Klasse Eigenschaften (Attribute) Variablen
MehrC++, STL und Qt. C++, STL und Qt. Dipl.Ing. Christoph Stockmayer, Schwaig, sto@stockmayer.de
C++, STL und Qt Objektorientiertes Programmieren mit C++, Benutzen der STL-Standard-Bibliothek und graphisches User-Interface Qt Dipl.Ing. Christoph Stockmayer, Schwaig, sto@stockmayer.de 1. Einleitung
MehrRobotersteuerung. VL Mikrorechentechnik 2. SS 2013 Professur für Prozessleittechnik
Robotersteuerung VL Mikrorechentechnik 2 SS 2013 Professur für Prozessleittechnik Übersicht Design eines endlichen Zustandsautomaten für die Steuerung eines Roboters C++ Konzepte: shared memory boost::interprocess
MehrProbeklausur: Programmierung WS04/05
Probeklausur: Programmierung WS04/05 Name: Hinweise zur Bearbeitung Nimm Dir für diese Klausur ausreichend Zeit, und sorge dafür, dass Du nicht gestört wirst. Die Klausur ist für 90 Minuten angesetzt,
MehrÜbersicht. Einführung in die Programmierung. main. main. main. main. Speicherverwaltung. Definition nach ANSI C:
Übersicht Einführung in die Programmierung Bachelor of Science die -Funktion Prof. Dr. Rethmann Fachbereich Elektrotechnik und Informatik Hochschule Niederrhein WS 009/0 Einführung in die Programmierung
MehrName: Klausur Programmierkonzepte SS 2011
Prof. Dr.-Ing. Hartmut Helmke Ostfalia Hochschule für angewandte Wissenschaften Fakultät für Informatik Matrikelnummer: Punktzahl: Ergebnis: Freiversuch F1 F2 F3 Klausur im SS 2011: Programmierkonzepte
Mehr13. Vererbung. Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012)
13. Vererbung Prof. Dr. François E. Cellier Informatik I für D-ITET (HS 2012) Vererbung Konzept Protected Section Virtuelle Mitgliedsfunktionen Verwendung von Vererbung Vererbung Vererbung ist ein Mechanismus,
MehrEinführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung)
Wintersemester 2007/08 Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät für Informatik Lehrstuhl
Mehr2.0. Jens Weller (jensweller@gmx.de) Joel de Guzman (joel@boost-consulting.com) Hartmut Kaiser (hartmut.kaiser@gmail.com)
2.0 Jens Weller (jensweller@gmx.de) Joel de Guzman (joel@boost-consulting.com) Hartmut Kaiser (hartmut.kaiser@gmail.com) 2.0 - Agenda Was ist Spirit? Aufbau & Überblick Lex, Qi & Karma 2.0 Was ist das?
MehrKlausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber
Klausur C++ #1 Jahr: 2001; Dozent: Dipl.Ing. Sorber 1) Welche Antworten zur Operatorüberladung sind richtig? (1) a) C++ - Operatoren können zusammen mit Objekten funktionieren b) C++ - Operatoren wird
MehrProgrammierung I Einführung in Python, Beyond the Basics
Höhere Datenstrukturen Programmierung I Einführung in Python, Beyond the Basics G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Eines der Features, das Python so mächtig macht (VHLL)
MehrAlltagsnotizen eines Softwareentwicklers
Alltagsnotizen eines Softwareentwicklers Entkoppeln von Objekten durch Callbacks mit c++-interfaces oder boost.function und boost.bind Tags: c++, entkoppeln, objekt, oop, callback, boost.bind, boost.function,
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrWiederholung ADT Menge Ziel: Verwaltung (Finden, Einfügen, Entfernen) einer Menge von Elementen
Was bisher geschah abstrakter Datentyp : Signatur Σ und Axiome Φ z.b. ADT Menge zur Verwaltung (Finden, Einfügen, Entfernen) mehrerer Elemente desselben Typs Spezifikation einer Schnittstelle Konkreter
MehrHTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen.
HTTP://WWW.WIKIPAINTINGS.ORG/EN/FRIEDENSREICH-HUNDERTWASSER/YOU-ARE-A-GUEST-OF-NATURE-BEHAVE Abstrakte Datentypen OOPM, Ralf Lämmel (C) Ralf Lämmel, OOPM, Universität Koblenz-Landau 562 Motivation abstrakter
MehrDeklarationen in C. Prof. Dr. Margarita Esponda
Deklarationen in C 1 Deklarationen Deklarationen spielen eine zentrale Rolle in der C-Programmiersprache. Deklarationen Variablen Funktionen Die Deklarationen von Variablen und Funktionen haben viele Gemeinsamkeiten.
MehrKlausur in Programmieren
Studiengang Sensorik/Sensorsystemtechnik Note / normierte Punkte Klausur in Programmieren Wintersemester 2010/11, 17. Februar 2011 Dauer: 1,5h Hilfsmittel: Keine (Wörterbücher sind auf Nachfrage erlaubt)
MehrSelber Programmieren
Selber Programmieren Wenn es für ein Problem keine fertige Lösung gibt, oder wenn man keine fertige Lösung finden kann, dann muss man sich das benötigte Werkzeug selbst herstellen: Ein eigenes Programm
MehrKapitel 6. Vererbung
1 Kapitel 6 2 Ziele Das sprinzip der objektorientierten Programmierung verstehen Und in Java umsetzen können Insbesondere folgende Begriffe verstehen und anwenden können: Ober/Unterklassen Subtyping Überschreiben
MehrFunktionale Programmierung mit C++
Funktionale Programmierung mit C++ Überblick Programmierung in funktionaler Art Warum funktionale Programmierung? Was ist funktionale Programmierung? Charakteristiken funktionaler Programmierung Was fehlt
MehrEinführung in Boost Spirit Qi
Einführung in Boost Spirit Qi Das C++ Parser Framework Warum noch ein Parser? - Komplexität der Grammatik + Lex/Yacc, AntLR Boost Spirit istringstream, lexical_cast + Grammatik im Quellcode + kein externes
Mehr5.4 Klassen und Objekte
5.4 Klassen und Objekte Zusammenfassung: Projekt Figuren und Zeichner Figuren stellt Basisklassen für geometrische Figuren zur Verfügung Zeichner bietet eine übergeordnete Klasse Zeichner, welche die Dienstleistungen
MehrÜbung 9. Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9
Informatik I 2 Übung 9 Quellcode Strukturieren Rekursive Datenstrukturen Uebung 9 Quellcode Strukturieren Wenn alle Funktionen in einer Datei zusammengefasst sind wird es schnell unübersichtlich Mehrere
MehrInstitut für Informatik
Technische Universität München Institut für Informatik Lehrstuhl für Computer Graphik & Visualisierung WS 2010 Praktikum: Grundlagen der Programmierung Lösungsblatt 7 Prof. R. Westermann, A. Lehmann, R.
MehrSebastian Houben Intensivkurs C++ 1. Intensivkurs C++ 21. September 2015
Sebastian Houben Intensivkurs C++ 1 Intensivkurs C++ 21. September 2015 Themen Sebastian Houben Intensivkurs C++ 2 Warum C++? Ziel dieses Kurses Voraussetzungen Verwandschaft zu C, Java und anderen Sprachen
Mehr