Progr ammierk urs. 'SoSe' Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
|
|
- Reiner Jakob Gerhardt
- vor 6 Jahren
- Abrufe
Transkript
1 Progr ammierk urs 'SoSe' 2014 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund
2 Lesson 6 Was machen wir heute hier? Vertiefung: kurz: static member, operator overloading, scope C++ standard lib & Standard Template Library (STL) mehr zu Speicher, pointer und references debugging [ Hardware und Software]
3 static members Statische (static) member variables struct Foo static unsigned num_instances; unsigned id; Foo() : id(++num_instances) } }; unsigned Foo::num_instances = 0; int main() Foo f; Foo g; cout << f.id << endl; cout << g.id << endl; cout << Foo::num_instances << endl; } num_instances wird von allen Objekten der Klasse geteilt!
4 static members Statische (static) member functions struct VectorSum static Vector& value(vector& v1, Vector& v2) for(unsigned long i(0) ; i < v1.size() ; ++i) v1[i] += v2[i]; } return v1; } };... Vector v_1; Vector v_2; VectorSum::value(v_1, v_2); bisher: class-member immer an Objekte gebunden jetzt: static class-member: nur an Klasse gebunden keine Instanziierung nötig! deklarieren mit static Zugriff mit scope operator :: drüber reden: wozu? noch ein Beispiel: private static member getter
5 operator over loading operators sind functions! struct Scalar float data; Scalar(float d = 0.f) : data(d) } }; Scalar& operator+(scalar& a, Scalar& b) a.data += b.data; return a; }; Syntax: intuitiv klar was passiert?
6 operator over loading copy assignment operator um mit unseren Scalar Objekten rechnen zu können, brauchen wir noch Etwas: struct Scalar float data; Scalar(float d) : data(d) } Scalar& operator=(scalar& b) this->data = b.data; return *this; } }; der ist etwas anders als operator+ drüber reden: was ist anders?
7 operator over loading was kann man damit denn jetzt machen? Scalar a(2.f); Scalar b(3.f); Scalar c; c = a + b; jetzt mitdenken: übertragen auf unsere Vektor- und Matrix-Klassen? ist auch eine Übungsaufgabe...
8 scope Sichtbarkeit in C++ es gibt in C++ mehrere Arten von Sichtbarkeit sie geben an, ob und von wem ein bestimmtes 'Stück' Code (Variable/Konstante, function oder Klasse) zugreifbar ist diese Sichtbarkeitstufen (scope) sind: 'class': innerhalb einer Klasse sichtbar 'global': für alle sichtbar (bzw. zunächst nur in der Datei. Daher auch oft: 'file') 'local': nur in der einschließenden Struktur (z.b.: function) sichtbar 'namespace': Namensräume können verwendet werden, um ein Projekt weiter zu strukturieren: jetzt einen solchen namespace kennen wir schon: std, den namespace für die C++ standard Bibliothek
9 namespaces Beispiel: namespace people class Consumer... };... } so ist Consumer zunächst nur im Namensraum people sichtbar es gibt mehrere Möglichkeiten auf Consumer zuzugreifen innerhalb von people: klar haben wir schon gesehen: der scope-operator '::' wie in std::cout auch people::consumer das using-statement: using namespace people;
10 C++ standard lib Datei Ein/Ausgabe ein Beispiel: #include <iostream> #include <fstream> #include <string> using namespace std; int main () string filename; cin >> filename; ifstream ifs ( s, ifstream::in ); while (ifs.good()) cout << (char)ifs.get(); ifs.close(); } weiter lesen: weiter lesen:
11 C++ standard lib Tutorial
12 STL Was enthält die STL? Container zur Speicherung von Daten, z.b.: Vektoren, Listen,... Iteratoren für den Zugriff auf die Daten im Container (lernen wir gleich) Algorithmen zu diesen Containern: Sortieren, u.a. Wofür? der sichere und effiziente Umgang mit Daten im Speicher ist schwierig: die STL wurde gemacht, um möglichst viel davon vor Entwicklern zu verstecken; Beispiel: vermeide (Re-)Allokationen es gibt gute Lösungen für bestimmte Aufgaben - das Rad muss nicht neu erfunden werden; Beispiel: quicksort (der für die meisten Fälle schnellste Sortieralgorithmus)
13 STL container generische sequentielle Container: vector, list und andere #include <vector> using namespace std;... vector<double> v; v.push_back(23.4); v.push_back(0.); v.push_back(-2.222); v.push_back(2.*1./3.); double a(v.front()); unsigned long i(v.size()); Container interface: allgemein bool empty() const : ist der Container leer? size type size() const : wieviele Elemente? size type ist nur sowas wie unsigned long void clear() : alle Elemente entfernen
14 STL iteratoren Was ist das? vector<float> v;... vector<float>::iterator current = v.begin(); while(current!= v.end()) std::cout << *current << std::endl; ++current; } Iteratoren repräsentieren Elemente in einem Container stellen eine Verbindung zwischen den Daten und ihrer Position im Container her Iteratoren sind demnach Container-spezifisch in sequentiellen Containern wie vector verhalten sich Iteratoren wie Indices offenbar gibt es in vector spezielle Iteratoren: begin und end man kann Iterator dereferenzieren(wie pointer): Zugriff auf Daten darunter man kann iterator erhöhen (mit ihm rechnen): Zugriff auf Position
15 STL iteratoren Wozu Iteratoren? vector<int> v;... v.erase(v.begin() + 5); etwas langsamer als anderer Zugriff sicher! manche Operationen erfordern Iteratoren was ist eigentlich vector<int>::iterator? class VectorIterator }; template<typename T> class vector typedef VectorIterator iterator; };
16 STL container Container interface: sequentielle Container schon gesehen: push back auch möglich (deque,...) : push_front auch möglich: pop front/back zusätzlich: [ ] overload für indizierten Zugriff zusätzlich: at( ) member-function für indizierten Zugriff vector<cat> v; Cat meow_1(v.at(i)); Cat meow_2(v[i]); was ist der Unterschied? - Semantisch: keiner, aber......intern wird bei Verwendung von at auf Gültigkeit des Zugriffs überprüft und eine exception geworfen, falls dies nicht der Fall ist! Der access operator macht das nicht! Implikation: at ist langsamer aber sicherer!
17 STL container Container interface: sequentielle Container nochmal: es geht wie immer besser die STL arbeitet mit C++11 eng zusammen Beispiel: ranged for-loops vector<int> vec; vec.push_back(10); vec.push_back(111); for(auto v_i : vec) cout << v_i << endl; } Semantik: 'for all v_i in v'
18 STL algorithm Algorithmen der STL: sequence : z.b.: count, find sorting : z.b.: sort, partial sort, max, lower bound,... numeric : z.b.: accumulate, inner product,... #include <vector> #include <algorithm> #include <iostream> vector<int> v; vector<int>::iterator item; ostream_iterator<int> out(cout," "); // generate array for ( long i(0) ; i < 10; ++i) v.push_back(i); // shuffle the array random_shuffle( v.begin(), v.end() ); copy( v.begin(), v.end(), out ); // sort the array in ascending order sort( v.begin(), v.end() ); copy( v.begin(), v.end(), out );
19 STL Tutorial
20 nochmal Speicher pointer arithmetics Speicheraddressen sind pointer variables in C++ : wissen wir wie schlau sind die? int nvalue = 7; int *pnptr = &nvalue; cout cout cout cout << << << << pnptr pnptr pnptr pnptr << endl; + 1 << endl; + 2 << endl; + 3 << endl; was kommt z.b. raus wenn int 4 byte groß sind? 0012FF7C 0012FF FF FF88
21 nochmal Speicher pointer arithmetics nochmal, diesmal am Beispiel mit array arrays und pointer sind dasselbe: wissen wir Konsequenzen? int an_array[5] = 9, 7, 5, 3, 1 }; cout << *(an_array + 1) << endl; // prints 7
22 debugging mit gdb Führen Sie eine Speicherschutzverletzung mit pointer-arithmetics herbei PÜ verwenden Sie ein array dereferenzieren Sie einen pointer, der sich aus der Basisaddresse plus Addressarithmetik ergibt kompilieren Sie mit dem zusätzlichen flag '-ggdb' starten Sie den Debbugger mit 'gdb <executable>' starten Sie das Programm im Debugmodus mit 'run' rufen Sie den Aufrufstack ab mit 'bt' finden Sie die richtige Zeile mit 'list'
23 nochmal Speicher memory leaks wie entstehen Speicherlöcher? void do_something() int* pnvalue = new int; } wenn man diese function aufruft, wird Speicher alloziiert, der nie wieder freigegeben werden kann heap Variablen haben effektiv keinen scope der pointer schon! der pointer geht out of scope, wenn die function terminiert Speicherlöcher beeinträchtigen das Programm und alle anderen Programme im System
24 nochmal Speicher memory leaks noch mehr Beispiele: pointer reassignment int nvalue = 5; int* pnvalue = new int; pnvalue = &nvalue; // old address lost, memory leak results double-allocation int* pnvalue = new int; pnvalue = new int; // old address lost, memory leak results
25 memor y leak detection Führen Sie ein Speicherloch herbei PÜ machen Sie absichtlich einen der Fehler (pointer out-of-scope, pointer reassignment oder reallocation) wie auf den letzten Folien starten sie ihr Programm mit 'valgrind <executable>'
26 smar t pointer Das Problem: Vec<double>* a(new Vec<double>()); Vec<double>* b(a); delete a; //EVIL!!! b->data()[0] = 0; Die Lösung std::shared_ptr ist ein sog. smart pointer (auch auto-pointer) wir müssen uns nicht mehr um manuelles Löschen bemühen wird der DTOR von shared_ptr aufgerufen, wird nur wenn keine anderen Kopien mehr die Daten benötigen (ownership) gelöscht wichtig in Verbindung mit STL Containern!' #include<memory> //do not care about deletion std::shared_ptr<vec<double> > astl(new Vec<double>()); std::shared_ptr<vec<double> > bstl(astl);
27 smar t pointer Das Problem: vector<person*> persons; persons.push_back(new Producer("Knut")); was passiert, wenn man nun pop_back aufruft? implizit wird erst mal der Person* im Speicher des Containers gelöscht...der liegt ja auf dem Heap... drüber nachdenken - ist eine Übungsaufgabe
28 nochmal Speicher pointer und constness int nvalue = 5; int* const pnptr1 = &nvalue; //const pointer const int* pnptr2 = &nvalue; //pointer to const const int* const pnptr3 = &nvalue; //const pointer to const
29 nochmal Speicher references und pointer int nvalue = 5; Int* const pnvalue = &nvalue; Int& rnvalue = nvalue; *pnvalue = 6; rnvalue = 6;
30 call paradigm, retur n paradigm int foo1(bar b) } //call by value int foo2(bar& b) } //call by reference int foo3(bar* b) } //call by address int foo1() } //return by value int& foo2() } //return by reference int* foo3() } //return by address
31 pointers und lvalues class Foo public: float* get_data() return data; } private: float* data; }; Foo f; f.get_data() = new float[100000]; //will not compile, why?
32 pointers und lvalues class Foo public: float*& get_data() return data; } private: float* data; }; Foo f; f.get_data() = new float[100000]; //correct, but beware! An lvalue (locator value) represents an object that occupies some identifiable location in memory (i.e. has an address). Es gibt inzwischen fünf Arten von expressions. Uns reicht: Eine expression ist 'lvalue oder nicht'.
33 pointer und ar r ays mehrdimensionale arrays float matrix[30][500]; //set all values to zero for(unsigned long i(0) ; i < 30 ; ++i) for(unsigned long j(0) ; j < 500 ; ++j) matrix[i][j] = 0.f; } } float** matrix;... matrix = new float*[n]; for(int i(0) ; i < n ; ++i) matrix[i] = new float[m];...
34 Hardware und Software Hardware materielle Teile des Computers CPU + Arbeitsspeicher Persistenzspeicher (Festplatte) Grafikchip Mainboard, auf das alles aufgebracht ist
35 Hardware und Software Software erst einmal für uns: 'Programme' befindet sich bei der Ausführung im Arbeitsspeicher hauptsächlich: Anweisungen zur Informationsverarbeitung ein Betriebssystem ist ein solches Programm
36 Hardware Aufbau eines Computers 'in unserem Sinne' Zentraleinheit: Hauptprozessor CPU Arbeitsspeicher (random access memory RAM) zur kurzfristigen Speicherung von Informationen, Kennzeichen: klein, schnell, Informationen sind weg, wenn kein Strom mehr da Plattenspeicher (hard disk, storage) zur langfristigen Speicherung, Kennzeichen: gross, langsam, Informationen bleiben langfristig erhalten Eingabegeräte: Tastatur, Maus, etc. Ausgabegeräte: Monitor, Drucker, etc. Verbindung über Netzwerk: verschiedene Techniken je nach Anwendungszweck unterschiedliche Leistungsparameter
37 Hardware Die CPU: Von-Neumann Architektur Steuerwerk (CU) steuert die Ausführung von Programmen hat dafür eigenen Speicher (wichtig!) Rechenwerk (ALU) führt einfache arithmetische Operationen aus: addieren, multiplizieren Gemeinsamer Speicher für Programm und Daten I/O zum Bildschirm von der Tastatur, etc.
38 Hardware Jenseits der CPU... Hardware ist nicht so 'einfach' Hardware ist parallel Hardware ist verteilt im Folgenden: immer nur eine, normale CPU
39 Software I Betriebssystem (OS) Ein Betriebssystem ist die Software, die die Verwendung eines Computers ermöglicht. Es verwaltet Betriebsmittel wie Speicher, Ein- und Ausgabegeräte und steuert die Ausführung von Programmen, insbesondere: Benutzerverwaltung Laden und Ausführung von Programmen Verwaltung der Prozessorzeit Verwaltung des Speicherplatzes für Anwendungen Verwaltung der angeschlossenen Ger ate Verbindung zur Aussenwelt (Netzwerk)
40 Software I Betriebssystemkernel Betriebssysteme bestehen in der Regel aus einem Kern (kernel), der die Hardware des Computers verwaltet, sowie grundlegenden Systemprogrammen, die dem Start des Betriebssystems und dessen Konfiguration dienen. Beispiele für Betriebssysteme: Windows, Mac OS, Linux, Android, ios Zugang zum OS: Kommandozeile (lernen wir gleich kennen) grafische Benutzeroberfläche
41 Software II Compiler ein geschriebenes Programm nicht ohne weiteres für den Rechner verständlich vor der Ausführung durch den Rechner Umwandlung Notwendig Programm muss übersetzt werden Übersetzung durch Compiler erst danach Ausführung durch Rechner möglich auch Betriebssystem und Compiler sind Programme
42 Programmieru ng Definition Programmiersprache: formalisierte Sprache die Sätze bestehen aus Worten eines festgelegten Zeichenvorrats (Alphabet) gültige Sätze müssen anhand einer endlichen Regelmenge (Syntax) gebildet werden legt die Bedeutung (Semantik) eines Satzes fest Programm: eine Reihe von Sätzen, die in einer Programmiersprache formuliert sind
43 Programmiersprachen Arten maschinennahe Programmiersprachen: betrachten explizit Speicherzellen und Register hängen vom konkreten Prozessor und der Rechnerarchitektur ab Maschinensprache, Assemblersprache höhere Programmiersprachen: Abstraktion von der konkreten Hardware Cobol, Fortran, C, C++, Java Akademisches Interesse: Prolog, Lisp
44 Programmiersprachen Arten höherer Programmiersprachen imperative Sprachen: Pascal, C, C++, Java ablauforientierte Sicht persistenter Zustand wird schrittweise verändert funktionale Sprachen: Lisp, Haskell Problemlösung durch mathematische Funktionen beschreiben logische Sprachen: Prolog Problemlösung durch logische Formeln beschreiben Merke: Objektorientierung ist nur eine Ausprägung von imperativen Sprachen
45 Software III Linker Was ist in unserem HelloWorld Programm passiert? eine einzelne Datei, die den Quelltext (Sourcecode) enthält, wurde zu einem Programm (einer Objektdatei) compiliert:
46 Software III Linker Objekte nicht unbedingt aus einer Datei: das können ganze Bibliotheken sein! auch externe Bibliotheken (Wiederverwendung) unterscheide statisches/dynamisches Linken wir haben den Linker gerade implizit mitaufgerufen
47 Software III Linker Unter einem Linker oder Binder (auch: Bindelader) versteht man ein Computerprogramm, das einzelne Programmmodule zu einem ausführbaren Programm zusammenstellt (verbindet).
Programmierkurs. 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
MehrPr og r ammier kur s
Pr og r ammier kur s SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de HOME http://www.mathematik.tu-dortmund.de/sites/pk-ss13 Lesson 1 Was machen wir
MehrC++ Teil 8. Sven Groß. 5. Dez IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil 8 5. Dez / 16
C++ Teil 8 Sven Groß IGPM, RWTH Aachen 5. Dez 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 8 5. Dez 2014 1 / 16 Themen der letzten Vorlesung Casts bei Zeigern dynamische Speicherverwaltung Vektoren Typedefs
MehrProgrammierkurs C++ Templates & STL (1/2)
Programmierkurs C++ Templates & STL (1/2) Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck https://www.itm.uni-luebeck.de/people/fischer #2 Templates Die wichtigsten objekt-orientierten
MehrC++ Teil 7. Sven Groß. 3. Juni Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni / 16
C++ Teil 7 Sven Groß 3. Juni 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 3. Juni 2016 1 / 16 Themen der letzten Vorlesung dynamische Speicherverwaltung (Wdh.) Cast bei Zeigern STL-Vektoren + Live Programming
MehrDie C++ Standard Template Library Andreas Obrist
Die C++ Standard Template Library 24. 06. 2004 Andreas Obrist Was dürft Ihr erwarten? 1. Teil Das Wichtigste in Kürze über die Standard Template Library 2. Teil Praktische Beispiele Was dürft Ihr nicht
MehrProgrammierkurs. SoSe Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs SoSe 2013 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 5 Was machen wir heute hier? weiter mit Objektorientierter Programmierung viel
MehrC++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14
C++ Teil 6 Sven Groß 27. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 6 27. Mai 2016 1 / 14 Themen der letzten Vorlesung Musterlösung A2 Wdh.: Zeiger und Felder Kopieren von Feldern Dynamische Speicherverwaltung
MehrC++ Teil 7. Sven Groß. 26. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 18
C++ Teil 7 Sven Groß IGPM, RWTH Aachen 26. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 26. Nov 2014 1 / 18 Themen der letzten Vorlesung Referenzen Zeiger Felder dynamische Speicherverwaltung Sven
MehrC++ Teil 7. Sven Groß. 30. Nov Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 13
C++ Teil 7 Sven Groß 30. Nov 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 7 30. Nov 2015 1 / 13 Themen der letzten Vorlesung Zeiger, Felder (Wdh.) dynamische Speicherverwaltung Sven Groß (IGPM, RWTH Aachen)
Mehr5. Behälter und Iteratoren. Programmieren in C++ Überblick. 5.1 Einleitung. Programmieren in C++ Überblick: 5. Behälter und Iteratoren
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrProgrammieren in C++ Überblick
Programmieren in C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 08-25.04.2018 Lernziele const: Reference const: Pointer vector: iterator using Jonas Lauener (ETH Zürich) Informatik
MehrProgrammieren 2 C++ Überblick
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 6. Templates und generische Programmierung
MehrWo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte
Wo und wie lange leben Objekte? globale Objekte lokale Objekte dynamische Objekte entstehen durch... globale Objektvereinbarung: T o; blocklokale Objektvereinbarung: {.. T o;.. durch expliziten Aufruf
MehrHello World! Eine Einführung in das Programmieren Das erste Programm
Hello World! Eine Einführung in das Programmieren Das erste Programm Görschwin Fey Institute of Embedded Systems Hamburg University of Technology Slide 2 Betriebssystem Funktion Anwendung Gerätesteuerung
MehrEinführung in die STL
1/29 in die STL Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/29 Outline 1 3/29 Inhaltsverzeichnis 1 4/29 Typisierung
MehrHier wird die Verwendung der Standard Template Library (kurz STL) kurz beschrieben. Inhalt 1.Verwendung der STL Grundlagen...
STL Die C++ Bibliothek ist eine Sammlung von standardisierten Klassen und Containern. Zu beachten ist, dass nicht jede C++ Implementierung den ganzen Umfang der Standardbibliothek realisiert hat. Hier
MehrInformatik für Mathematiker und Physiker Woche 7. David Sommer
Informatik für Mathematiker und Physiker Woche 7 David Sommer David Sommer 30. Oktober 2018 1 Heute: 1. Repetition Floats 2. References 3. Vectors 4. Characters David Sommer 30. Oktober 2018 2 Übungen
MehrProgrammierkurs. Steffen Müthing. November 16, Interdisciplinary Center for Scientific Computing, Heidelberg University
Programmierkurs Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University November 16, 2018 Standardbibliothek Datenstrukturen Algorithmen Variablen und Referenzen Aufrufkonventionen
MehrInformatik 1 ( ) D-MAVT F2010. Schleifen, Felder. Yves Brise Übungsstunde 5
Informatik 1 (251-0832-00) D-MAVT F2010 Schleifen, Felder Nachbesprechung Blatt 3 Aufgabe 1 ASCII... A > a Vorsicht: Lösen Sie sich von intuitiven Schlussfolgerungen. A ist nicht grösser als a, denn in
MehrObjektorientierte Programmierung II
Objektorientierte Programmierung II OOP I Erlaubt Entwicklers, im Problemraum zu denken und zu arbeiten. Das Problem wird in eine Menge von Objekten zerlegt. Objekte wirken aufeinander, um das Problem
MehrC++11. neu in C++11: range-based for. Objektorientierte Programmierung mit C++ Ersetzung durch: 1. Elementares C++ int array[] = { 1, 2, 3, 4, 5 };
neu in C++11: range-based for int array[] = { 1, 2, 3, 4, 5 ; for (int x : array) // value x *= 2; C++11 for (int& x : array) // reference x *= 2; Ersetzung durch: { auto && range = range-init; for ( auto
MehrC++ Kurs Teil 3. Standard Template Library (STL) Kommunikation mit der shell Hyper Text Markup Language (HTML)
C++ Kurs Teil 3 Standard Template Library (STL) Übersicht vector algorithm: sort, for_each map Kommunikation mit der shell Hyper Text Markup Language (HTML) O. Ronneberger: C++ Kurs Teil 3 Seite 1
MehrC++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18
C++ Teil 5 Sven Groß 13. Mai 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 13. Mai 2016 1 / 18 Themen der letzten Vorlesung Funktionen Funktionsüberladung, Signatur Rekursion const-deklaration Referenzen
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine
MehrMapra: C++ Teil 2. Felix Gruber, Sven Groß. 2. Mai 2017 IGPM. Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai / 11
Mapra: C++ Teil 2 Felix Gruber, Sven Groß IGPM 2. Mai 2017 Felix Gruber, Sven Groß (IGPM) Mapra: C++ Teil 2 2. Mai 2017 1 / 11 Themen vom letzten Mal Kontrollstrukturen Funktionen const Referenzen Zeiger
MehrRepetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatorüberladung 2 Pointer Zeigervariable 3 CopyConstructor 4 Listen 5 Array String 6 STL Container
MehrEinführung in die STL
Einführung in die STL Fimberger Lucia lfimberg@cosy.sbg.ac.at Nidetzky Marion mnidetzk@cosy.sbg.ac.at Was ist die STL? Abkürzung für Standard Template Library Eine generische Bibliothek Ist kaum objektorientiert,
MehrOrganisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online
Organisatorisches Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online Nächste Woche VO und UE am Dienstag, den 30.10.! UE im CR IL/IT Wissensüberprüfung am Zettel 25.10.2018 IT I - VO 3 1 Organisatorisches
MehrC++ vs. Java. Hello world! Java C++ class HelloWorld { static public void main(string args) { System.out.println("Hello World!
Hello world! Java class HelloWorld { static public void main(string args) { System.out.println("Hello World!"); } } C #include main() { printf("hello World!\n"); } C++ #include using
MehrWir erinnern uns... #include <iostream> #include <vector>
165 6. C++ vertieft (I) Kurzwiederholung: Vektoren, Zeiger und Iteratoren Bereichsbasiertes for, Schlüsselwort auto, eine Klasse für Vektoren, Subskript-Operator, Move-Konstruktion, Iterator. Wir erinnern
MehrWintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 29
Kapitel 2 Einführung in C++ Seite 1 von 29 C++ Zeichensatz - Buchstaben: a bis z und A bis Z. - Ziffern: 0 bis 9 - Sonderzeichen: ; :,. # + - * / % _ \! < > & ^ ~ ( ) { } [ ]? Seite 2 von 29 Höhere Elemente
MehrDynamische Datentypen. Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren
Dynamische Datentypen Destruktor, Copy-Konstruktor, Zuweisungsoperator, Dynamischer Datentyp, Vektoren Probleme mit Feldern (variabler Länge) man kann sie nicht direkt kopieren und zuweisen Probleme mit
MehrInformatik 1 ( ) D-MAVT F2011. Pointer, Structs. Yves Brise Übungsstunde 6
Informatik 1 (251-0832-00) D-MAVT F2011 Pointer, Structs Organisatorisches Übungsstunde 20110413 Da ich abwesend bin, bitte Gruppe von David Tschirky besuchen. Mittwoch, 20110413, 13:15-15:00 Uhr, VAW
MehrEinführung Sprachfeatures Hinweise, Tipps und Styleguide Informationen. Einführung in C. Patrick Schulz
Patrick Schulz patrick.schulz@paec-media.de 29.04.2013 1 Einführung Einführung 2 3 4 Quellen 1 Einführung Einführung 2 3 4 Quellen Hello World in Java Einführung 1 public class hello_ world 2 { 3 public
Mehrinitializer lists (nicht für Referenzen... unklar warum...)
initializer lists (nicht für Referenzen... unklar warum...) 1 class Y{ y ; Y &ref (y) ; // ok Y &ref {y ; // Fehler: g++, MS VS C++11 47 preventing narrowing int x = 7.3; // Ouch! void f(int); f(7.3);
MehrDAP2-Programmierpraktikum Einführung in C++ (Teil 2)
DAP2-Programmierpraktikum Einführung in C++ (Teil 2) Carsten Gutwenger 18. April 2008 Lehrstuhl 11 Algorithm Engineering Fakultät für Informatik, TU Dortmund Überblick Dynamischer Speicher Klassen und
MehrEinführung in den Einsatz von Objekt-Orientierung mit C++ I
Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen
MehrOrganisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download
Organisatorisches Folien (u.a.) gibt's auf der Lva-Homepage zum Download Diesen Mi erstes Tutorium (15-17) Ab nächster Woche montags 10-12 (jeweils im Computerraum) 17.10.2017 IT I - VO 3 1 Organisatorisches
MehrData Structures. Christian Schumacher, Info1 D-MAVT Linked Lists Queues Stacks Exercise
Data Structures Christian Schumacher, chschuma@inf.ethz.ch Info1 D-MAVT 2013 Linked Lists Queues Stacks Exercise Slides: http://graphics.ethz.ch/~chschuma/info1_13/ Motivation Want to represent lists of
MehrEinführung in die Programmierung Wintersemester 2016/17
Einführung in die Programmierung Wintersemester 2016/17 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Gültigkeitsbereiche Inhalt Lokale und globale
MehrEinführung in C ++ und die Objektorientierte Programierung
1/38 Einführung in C ++ und die Objektorientierte Programierung Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/38 Outline
Mehrint main(){ int main(){ Das wollen wir doch genau verstehen! std::vector<int> v(10,0); // Vector of length 10
Wir erinnern uns #include #include 6. C++ vertieft (I) Kurzwiederholung: Vektoren, Zeiger und Iteratoren Bereichsbasiertes for, Schlüsselwort auto, eine Klasse für Vektoren, Subskript-Operator,
MehrInformatik 1 ( ) D-MAVT F2011. Klassen, Funktionen. Yves Brise Übungsstunde 9
Informatik 1 (251-0832-00) D-MAVT F2011 Klassen, Funktionen Nachbesprechung Blatt 7, Aufgabe 1 Wenn Funktion void als Rückgabetyp hat, dann ist return nicht notwendig. void swap3(int* a, int* b) { int
MehrProgrammiertechnik. Teil 4. C++ Funktionen: Prototypen Overloading Parameter. C++ Funktionen: Eigenschaften
Programmiertechnik Teil 4 C++ Funktionen: Prototypen Overloading Parameter C++ Funktionen: Eigenschaften Funktionen (Unterprogramme, Prozeduren) fassen Folgen von Anweisungen zusammen, die immer wieder
MehrKlausur: Informatik I am 06. Februar 2009 Gruppe: D Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 12 Pkt.) Was liefert
MehrProgrammierkurs. 'SoSe' Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs 'SoSe' 2014 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 4 Was machen wir heute hier? Objektorientierte Programmierung Speichermanagement
MehrPolymorphismus 44. Function.hpp. #include <string>
Polymorphismus 44 #include Function.hpp class Function { public: virtual ~Function() {}; virtual const std::string& get_name() const = 0; virtual double execute(double x) const = 0; }; // class
MehrVariablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung
Variablen in C++ Einfache Variablen Strukturen Arrays und Zeichenketten Zeiger und Referenzen Parameter Dynamische Speicherverwaltung Einfache Variablen Typen int, long, short, unsigned bool char float,
MehrStandard Template Library
Standard Template Library Ralph Thesen Institut für Numerische Simulation Rheinische Friedrich-Wilhelms-Universität Bonn Seminar: Technische Numerik Dezember 2009 Überblick 1 Einleitung 2 Templates 3 STL
MehrÜbungsstunde: Informatik 1 D-MAVT
Übungsstunde: Informatik 1 D-MAVT Daniel Bogado Duffner Übungsslides unter: n.ethz.ch/~bodaniel Bei Fragen: bodaniel@student.ethz.ch Daniel Bogado Duffner 25.04.2018 1 Ablauf Self-Assessment Pointer Iterators
MehrProgrammierkurs. 'SoSe' Markus Geveler Inst. f. Applied Mathematics, TU Dortmund.
Programmierkurs 'SoSe' 2014 Markus Geveler Inst. f. Applied Mathematics, TU Dortmund markus.geveler@math.tu-dortmund.de Lesson 3 Was machen wir heute hier? Speichermanagement in C++ - Einführung Objektorientierte
Mehr19. STL Container Programmieren / Algorithmen und Datenstrukturen 2
19. STL Container Programmieren / Algorithmen und Datenstrukturen 2 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt Wintersemester 2012 / 2013 1 Agenda Kontrollfragen STL Container: Übersicht
MehrProgrammieren 2 C++ Überblick. Programmieren 2 C++ Überblick: 6. Templates und generische Programmierung. 6. Templates und generische Programmierung
Programmieren 2 C++ Überblick 1. Einführung und Überblick 2. Klassen und Objekte: Datenkapselung 3. Erzeugung und Vernichtung von Objekten 4. Ad-hoc Polymorphismus 5. Behälter und Iteratoren 7. Standard
MehrMapra: C++ Teil 4. Felix Gruber. 6. Mai IGPM, RWTH Aachen. Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6.
Mapra: C++ Teil 4 Felix Gruber IGPM, RWTH Aachen 6. Mai 2015 Felix Gruber (IGPM, RWTH Aachen) Mapra: C++ Teil 4 6. Mai 2015 1 / 22 Themen vom letzten Mal Kompilieren mit Makefiles Ein-/Ausgabe über Dateien
MehrVisuelle Kryptographie. Anwendung von Zufallszahlen
Visuelle Kryptographie Anwendung von Zufallszahlen Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken, so dass Verschlüsseln eines Bildes Wir wollen ein Bild an Alice und Bob schicken,
MehrVorlesungsprüfung Programmiersprache 1
Vorlesungsprüfung Programmiersprache 1 Termin der Prüfung: 1) Di 20.03.2018 16:15 17:00 HSB 3 2) Di 15.05.2018 16:15 17:00 HSB 3 3) Di 12.06.2018 16:15 17:00 HSB 3 Stoffgebiete: 1) Ganzzahltypen: char,
MehrStandardbibliotheken. Datentyp bool. Eingaben 2/2. Eingaben 1/2. In C gibt es keinen logischen Datentyp
Datentyp bool Standardbibliotheken Ein- und Ausgabe Vektoren Container In C gibt es keinen logischen Datentyp Abhilfe schafft Interpretation 0 == false 1 == true Das könnte so aussehen: #define false 0
MehrKlausur: Grundlagen der Informatik I, am 06. Februar 2009 Dirk Seeber, h_da, Fb Informatik. Nachname: Vorname: Matr.-Nr.: Punkte:
Seite 1 von 10 Hiermit bestätige ich, dass ich die Übungsleistungen als Voraussetzung für diese Klausur in folgender Übung erfüllt habe. Jahr: Übungsleiter: Unterschrift: 1. Aufgabe ( / 10 Pkt.) a) Wer
MehrEinführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2010/11 Lokale und globale Variablen Namensräume Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund
MehrDatenkapselung: public / private
627 18. Klassen Klassen, Memberfunktionen, Konstruktoren, Stapel, verkettete Liste, dynamischer Speicher, Copy-Konstruktor, Zuweisungsoperator, Destruktor, Konzept Dynamischer Datentyp Datenkapselung:
MehrAlgorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 16.04.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 39 Einführung Datentypen Operatoren Anweisungssyntax Algorithmen zur Datenanalyse in
MehrIntensivkurs C++ Tag 2: Grundlagen++ Marc Tschentscher Institut für Neuroinformatik
Intensivkurs C++ Tag 2: Grundlagen++ Marc Tschentscher Institut für Neuroinformatik www.ini.rub.de/rtcv 19.09.2017 Intensivkurs C++ 19.09.2017 Marc Tschentscher 1 Themen 1 Gültigkeitsbereiche und Namensräume
MehrGrundlagen der Informatik
Grundlagen der Informatik Klausur 1. August 2008 1. Dynamische Datenstrukturen und objektorientierte Programmierung (45 Punkte) Gegeben sei eine Datenstruktur mit folgendem Aufbau struct lelem { int w;
MehrInformatik - Übungsstunde
Informatik - Übungsstunde Jonas Lauener (jlauener@student.ethz.ch) ETH Zürich Woche 12-23.05.2018 Lernziele Klassen Dynamic Memory Jonas Lauener (ETH Zürich) Informatik - Übung Woche 12 2 / 20 Structs
MehrC-Arrays vs. C++-Container
C-Arrays vs. C++-Container In C verwendet man (mangels Alternativen) sehr häufig das C-Array (= Feld): im Speicher hintereinander abgelegte Elemente vom gleichen Typ. Arrays haben einen Basistyp (Typ des
MehrVerschlüsseln eines Bildes. Visuelle Kryptographie. Verschlüsseln eines Bildes. Verschlüsseln eines Bildes
Verschlüsseln eines Bildes Visuelle Kryptographie Anwendung von Zufallszahlen Wir wollen ein Bild an Alice und Bob schicken, so dass Alice allein keine Information über das Bild bekommt Bob allein keine
Mehr1. C++ vertieft (I) Was lernen wir heute? Wir erinnern uns... Nützliche Tools (1): auto (C++11)
Was lernen wir heute? 1. C++ vertieft (I) Kurzwiederholung: Vektoren, Zeiger und Iteratoren Bereichsbasiertes for, Schlüsselwort auto, eine Klasse für Vektoren, Indexoperator, Move-Konstruktion, Iterator.
MehrProgrammierung und Angewandte Mathematik
Programmierung und Angewandte Mathematik C++ /Scilab Programmierung und Einführung in das Konzept der objektorientierten Anwendungen zu wissenschaftlichen Rechnens SS 2012 Ablauf Was sind Funktionen/Methoden
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil III - Objektorientierte Programmierung 9. Klassen und Methoden Was sind Klassen? Seite 2 sprachliches Mittel von C++ um objektorientierte Programmierung
MehrPraxisorientierte Einführung in C++ Lektion: "Der C++-11 Standard"
Praxisorientierte Einführung in C++ Lektion: "Der C++-11 Standard" Christof Elbrechter Neuroinformatics Group, CITEC July 5, 2012 Christof Elbrechter Praxisorientierte Einführung in C++ July 5, 2012 1
MehrEinfü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
MehrC++ für alle. Praktische Neuerungen in C September 2012
Praktische Neuerungen in C++11 18. September 2012 Änderungen kriegen Klassen. Eine Änderung mit X ist Y : S syntaktisch T im Typsystem L in der Library S for-schleifen Alt und bekannt aus C++98/03: std
MehrEinführung in die Programmiersprache C
Einführung in die Programmiersprache C 4 Storage classes Alexander Sczyrba Robert Homann Georg Sauthoff Universität Bielefeld, Technische Fakultät Compilation units Compilierung eines mehrteiligen Programms:
MehrPolymorphismus 179. Function.h. #include <string>
Polymorphismus 179 #include Function.h class Function { public: virtual ~Function() {}; virtual std::string get_name() const = 0; virtual double execute(double x) const = 0; }; // class Function
Mehr4 Generische Programmierung. 4.1 Klassen-Templates (*) 4.2 Funktions-Templates (*) 4.3 Besondere Programmiertechniken (Smart Pointer)
4 Generische Programmierung 4.1 Klassen-Templates (*) 4.2 Funktions-Templates (*) 4.3 Besondere Programmiertechniken (Smart Pointer) (*) Auch in dieser Datei. V 4.05; Hon. Prof. Helmke 1 Intelligente Zeiger
MehrWoche 6. Cedric Tompkin. April 11, Cedric Tompkin Woche 6 April 11, / 29
Woche 6 Cedric Tompkin April 11, 2018 Cedric Tompkin Woche 6 April 11, 2018 1 / 29 Figure: Mehr Comics Cedric Tompkin Woche 6 April 11, 2018 2 / 29 Learning Objectives Dir kennst Return-by-value und Return-by-reference.
MehrEinführung in die Programmierung mit C++
1 Seite 1 Einführung in die Programmierung mit C++ Teil IV - Weiterführende Themen 13. Klassenbibliotheken Klassenbibliotheken Seite 2 Sammlung von Algorithmen und Klassen in Klassenbibliotheken: Konzept:
MehrZeiger und dynamischer Speicher
Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Zuletzt aktualisiert: 09.12.2013, 07:49 Uhr
MehrMartin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Welche Arten von Anweisungen gibt es? Anweisungen
MehrC++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11
C++ Teil 12 Sven Groß 18. Jan 2016 Sven Groß (IGPM, RWTH Aachen) C++ Teil 12 18. Jan 2016 1 / 11 Themen der letzten Vorlesung Wiederholung aller bisherigen Themen: Datentypen und Variablen Operatoren Kontrollstrukturen
MehrGrundlagen der Informatik 11. Zeiger
11. Zeiger Motivation Zeiger und Adressen Zeiger und Funktionen Zeiger und Arrays Dynamische Objekte Grundlagen der Informatik (Alex Rempel) 1 Motivation Dynamische Speicherverwaltung Oft müssen große
MehrComputergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2
Computergrundkenntnisse und Programmieren, WS 07/08, Übung 11: Klassen der Standardbibliothek 2 Neben vector ist list die zweite wichtige Containerklasse. Um unsere Kenntnisse von Containerklassen zu erweitern,
MehrC++ Teil 4. Sven Groß. 30. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 16
C++ Teil 4 Sven Groß IGPM, RWTH Aachen 30. Apr 2015 Sven Groß (IGPM, RWTH Aachen) C++ Teil 4 30. Apr 2015 1 / 16 Themen der letzten Vorlesung Funktionen: Definition und Aufruf Wert- und Referenzparameter,
MehrÜbung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil
MÜNSTER Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++ 1. Teil 11. April 2012 Organisatorisches MÜNSTER Übung zur Vorlesung Wissenschaftliches
MehrProbeklausur. Musterlösung
Programmierkurs Probeklausur Dr. Steffen Müthing Abgabe 08. Februar 2019 IWR, Universität Heidelberg ipk-exercises:2018-ws-55-gc187ae0 Allgemeine Hinweise: Probeklausur Dieses Übungsblatt wird nicht bewertet.
MehrRepetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 6. März 2012 Agenda 1 Operatoren 2 Datentypen Gleitpunkt Zahl Typkonvertierung 3 Strommanipulatoren 4 Bedingungen if-else switch-case
Mehrn 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen - 1 -
n 1. Der Begriff Informatik n 2. Syntax und Semantik von Programmiersprachen I.2. I.2. Grundlagen von von Programmiersprachen. - 1 - 1. Der Begriff Informatik n "Informatik" = Kunstwort aus Information
MehrObjektorientierte Programmierung mit C++ SS 2007
Objektorientierte Programmierung mit C++ SS 2007 Andreas F. Borchert Universität Ulm 5. Juni 2007 Polymorphismus #include Function.h class Function { public: virtual ~Function() {}; virtual std::string
MehrFunktionales C++ zum Ersten
Funktionales C++ zum Ersten WiMa-Praktikum 1, Teil C++, Tag 1 Christoph Ott, Büro: Helmholtzstr.18, E22 Tel.: 50-23575, Mail: christoph.ott@uni-ulm.de Institut für Angewandte Informationsverarbeitung 26.08.08
MehrAbschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do
Abschlußtest Programmieren 30. Juni 2017 Name: Punkte von 32: Gruppe: Haase-Di Haase-Do Stanek-Di Stanek-Do 1. (6 P) Schreiben Sie die folgenden mathematischen Ausdrücke als korrekte C++- Anweisungen (Variablendeklarationen,
MehrAngewandte Mathematik und Programmierung
Angewandte Mathematik und Programmierung Einführung in das Konzept der objektorientierten Anwendungen zu mathematischen Rechnens WS 2013/14 Operatoren Operatoren führen Aktionen mit Operanden aus. Der
MehrGrundlagen von C# - 1
Grundlagen von C# - 1 Marc Satkowski 20. November 2016 C# Kurs Gliederung 1. Über diesen Kurs 2. Benötigte Software 3. Exkurs: Architektur von.net und C# 4. Erstes Programm: Hello World Grundlegende Eigenschaften
MehrInstitut für Programmierung und Reaktive Systeme. Java 6. Markus Reschke
Institut für Programmierung und Reaktive Systeme Java 6 Markus Reschke 13.10.2014 OOP Objekte = Verhalten (durch Methoden) + Daten (durch Attribute) Klassen = Baupläne für Objekte Kapselung von Programmteilen
Mehr