const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static.
|
|
- Hedwig Lenz
- vor 6 Jahren
- Abrufe
Transkript
1 const Zwei Schlüsselwörter bei der Deklaration von Variablen und Member-Funktionen haben wir noch nicht behandelt: const und static. Eine const Variable kann ihren Wert nicht ändern: const double pi = ; C++ kennt Konstanten. Also sind #define-anweisungen als Konstantenersatz überflüssig und zu vermeiden. Wenn Argumente von Funktionen konstante Variablen (insbesondere konstante Referenzen und Pointer) sein können, dann sollte man sie aus Sicherheitsgründen unbedingt konstant machen. Mathematische und physikalische Konstanten muss man nicht selbst definieren: For example function boost::math::constants::pi<float>() returns the maximally accurate PI value for float type. Even though they are functions, they don t really calculate the value at run-time; they just return a constant. I think this is much better than M_PI. Und: Eine const deklarierte Member-Funktion einer Klasse kann den Zustand einer Instanz dieser Klasse nicht ändern (kann keine Member-Variablen der Instanz verändern und kann keine nicht-konstanten Funktionen aufrufen). Beim Design einer Klasse sollte man sich gleich überlegen, welche Methoden konstante Werte zurück liefern, und welche Methoden selbst konstant gemacht werden können. Je mehr Rückgabewerte, Argumente und Methoden als konstant deklariert werden können, je besser. Wenn man Konstanten braucht, dann sollte man das dafür vorgesehene Sprachmittel const type name auch benutzen!
2 static Das Schlüsselwort static hat unterschiedliche Bedeutung, je nachdem wo es steht: Innerhalb einer Funktion vor einer Variablen-Deklaration: Die Variable wird nicht bei jedem Aufruf der Funktion initialisiert, sondern nur einmal beim Programmstart. #include <iostream> void teststatic() { int counter = 0; std::cout << counter now is << counter << std::endl; counter++; return; int main() { for (int i=0; i<10; i++) teststatic(); return 0; #include <iostream> void teststatic() { static int counter = 0; std::cout << counter now is << counter << std::endl; counter++; return; int main() { for (int i=0; i<10; i++) teststatic(); return 0; In einer Klassen-Definition vor einer Member-Variablen-Deklaration: Alle Instanzen der Klasse teilen sich die Variable. static member variables existieren schon bevor der erste Konstruktor der Klasse aufgerufen wurde. static member variables werden.cc-file initialisert: int TestStaticClass::counter = 0;
3 static Schreibt eine TestStaticClass Mit einer static member variable int counter Mit einem default ctor, der die eryeugten Instanzen zählt Mit einer int counted() Methode, die den Zählerstand zurück liefert Schreibt ein main()-programm Das 7 Instanzen von TestStaticClass erzeugt Das nach dem Erzeugen jeder Instanz den Zähler abfragt und ausgibt. Nicht vergessen: den Zähler in TestStaticClass.cc initialisieren!
4 static Das Schlüsselwort static hat unterschiedliche Bedeutung, je nachdem wo es steht: Vor einer Member-Funktions-Deklaration: static member functions existieren ausserhalb aller Instanzen der Klasse, und es gibt sie folglich schon bevor der erste ctor der Klasse aufgerufen wurde (genau wie bei einer static member variable) Aufruf einer static member function: int result = TestStaticClass::nofCalls(); Baut in TestStaticClass eine static member function int nofcalls() ein, die zurückliefert, wie oft sie schon aufgerufen wurden. Testet nofcalls() in eurem main(). Wir können eine Variable in einer Funktion so deklarieren, dass sie ihren Wert zwischen den Aufrufen behält. Wir können sicher stellen, dass es von einer Member-Variablen nur eine Kopie gibt. Wir können dafür sorgen, dass es von einer Member-Funktion nur eine Kopie gibt. Wie können wir erreichen, dass es von einer Klasse höchstens eine Instanz gibt?
5 static Das Schlüsselwort static hat unterschiedliche Bedeutung, je nachdem wo es steht: Vor einer Member-Funktions-Deklaration: static member functions existieren ausserhalb aller Instanzen der Klasse, und es gibt sie folglich schon bevor der erste ctor der Klasse aufgerufen wurde (genau wie bei einer static member variable) Aufruf einer static member function: int result = TestStaticClass::nofCalls(); Baut in TestStaticClass eine static member function int nofcalls() ein, die zurückliefert, wie oft sie schon aufgerufen wurden. Testet nofcalls() in eurem main(). Wir können eine Variable in einer Funktion so deklarieren, dass sie ihren Wert zwischen den Aufrufen behält. Wir können sicher stellen, dass es von einer Member-Variablen nur eine Kopie gibt. Wir können dafür sorgen, dass es von einer Member-Funktion nur eine Kopie gibt. Wie können wir erreichen, dass es von einer Klasse höchstens eine Instanz gibt? Mit dem Singleton Design Pattern
6 Design Patterns Design Patterns sind bewährte Design-Lösungen zu bekannten, häufiger auftretenden Problemen in der Softwareentwicklung. Warum Design Patterns? Zeitersparnis: Die Lösung des Problems wurde schon von anderen erarbeitet Fehlerfreiheit: Design Patterns sind bewährte, getestete Lösungen Vereinfachte Weiterentwicklung: Andere Entwickler erkennen eine Design Pattern wieder und verstehen dadurch fremden, geerbten Code schneller Welche Patterns gibt es? Creational design patterns Abstract Factory: Creates an instance of several families of classes Builder: Separates object construction from its representation Factory Method: Creates an instance of several derived classes Object Pool: Avoid expensive acquisition and release of resources by recycling objects that are no longer in use Prototype: A fully initialized instance to be copied or cloned Singleton: A class of which only a single instance can exist Structural design patterns Adapter: Match interfaces of different classes Bridge: Separates an object s interface from its implementation Composite: A tree structure of simple and composite objects Decorator: Add responsibilities to objects dynamically Facade: A single class that represents an entire subsystem Flyweight: A fine-grained instance used for efficient sharing Private Class Data: Restricts accessor/mutator access Proxy: An object representing another object
7 Design Patterns Welche Patterns gibt es? Behavioral design patterns Chain of responsibility: A way of passing a request between a chain of objects Command: Encapsulate a command request as an object Interpreter: A way to include language elements in a program Iterator: Sequentially access the elements of a collection Mediator: Defines simplified communication between classes Memento: Capture and restore an object's internal state Null Object: Designed to act as a default value of an object Observer: A way of notifying change to a number of classes State: Alter an object's behavior when its state changes Strategy: Encapsulates an algorithm inside a class Template method: Defer the exact steps of an algorithm to a subclass Visitor: Defines a new operation to a class without change... Unser Problem war es sicher zu stellen, dass es nur eine Instanz einer Klasse geben darf: Singleton: A class of which only a single instance can exist Lösung: Niemand ausser einer Methode der selben Klasse darf den ctor der Klasse aufrufen können: Der ctor wandert von public nach protected.
8 Design Patterns // singleton.h class Singleton { public: static Singleton& instance() { // das einzige Objekt dieser Klasse erzeugen und als Referenz zurückgeben // singleton ist eine statische Variable in einer statischen Member-Funktion static Singleton singleton; return singleton; Singleton::instance().doSomething(); void dosomething() { protected: Singleton() { // Auch der Copy-Konstruktor muss protected sein, damit niemand Kopien macht Singleton(const Singleton& other) { ; Es gibt noch weitere, leicht andere Implementierungen des Singleton Patterns. Macht aus der TestStaticClass ein Singleton. Lasst counted() zählen, wie oft es aufgerufen wurde. Holt euch in main() eine Reihe von TestStaticClass-Referenzen, und gebt jedesmal den Wert von counted() aus (um zu testen, dass ihr immer mit der selben Instanz redet).
Software Reuse Sommer 2004. Schritt 1: Rechtschreibung, Grammatik, Wortschatz, Semantik Schritt 2: Vertiefung
Design Pattern Peter Sturm Universität Trier Analogie Erlernen einer Fremdsprache Schritt 1: Rechtschreibung, Grammatik, Wortschatz, Semantik Schritt 2: Vertiefung Bildung vernünftiger Sätze, Absätze,...
MehrImplementieren von Klassen
Implementieren von Klassen Felder, Methoden, Konstanten Dr. Beatrice Amrhein Überblick Felder/Mitglieder (Field, Member, Member-Variable) o Modifizierer Konstanten Methoden o Modifizierer 2 Felder und
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
MehrDesign Patterns. OO-GetTogether. Volker Michels
1 Design Patterns OO-GetTogether Volker Michels 2 Muster (engl. Pattern) Züllighoven: Ein Muster ist eine Abstraktion von einer konkreten Form, die wiederholt in bestimmten nicht willkürlichen Kontexten
MehrSoftware-Architektur. Design Patterns. Prof. Dr. Oliver Braun. Fakultät für Informatik und Mathematik Hochschule München
Software-Architektur Design Patterns Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 11.07.2017 15:12 Inhaltsverzeichnis Standardwerk.................................... 2 Design
MehrKonstruktor/Destruktor
1/23 Konstruktor/Destruktor Florian Adamsky, B. Sc. (PhD cand.) florian.adamsky@iem.thm.de http://florian.adamsky.it/ cbd Softwareentwicklung im WS 2014/15 2/23 Outline 1 2 3/23 Inhaltsverzeichnis 1 2
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
Mehr3. Entwurfsmuster zur Entkopplung von Modulen
3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Entwurfsmuster (Design Patterns): Software-Entwicklungsaufgaben, die in vielen Ausprägungen häufig auftreten. Objektorientierte Schemata, die als Lösungen
MehrMSE/SWF - API Design. Arthur Zaczek. Feb 2015
Arthur Zaczek Feb 2015 1 Einleitung Dieses Dokument ist eine Zusammenfassung des Buches Practical API Design: Confessions of a Java Framework Architect. [@Tulach2012] 1.1 Cluelessness Je einfacher eine
MehrEntwurfsprinzip. Entwurfsprinzip
Die Komposition (hat ein Beziehung) ist der Vererbung (ist ein Beziehung) vorzuziehen. Es können Familien von Algorithmen in eigenen Klassensätzen gekapselt werden. Das Verhalten lässt sich zu Laufzeit
MehrCrashkurs C++ Wiederholung
Crashkurs C++ Wiederholung #include int main(void) { int i, j; bool is_prime; for (j = 1; j < 1000; j += 2) { is_prime = true; for (i = 3; i
MehrInhaltsverzeichnis. Vorwort Geleitwort von Grady Booch Einleitung... 23
Vorwort.................................................. 17 Geleitwort von Grady Booch................................. 21 Einleitung................................................ 23 1 Einführung...............................................
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);
MehrInfo B VL 11: Innere Klassen/Collections
Info B VL 11: Innere Klassen/Collections Objektorientiere Programmierung in Java 2003 Ute Schmid (Vorlesung) Elmar Ludwig (Übung) FB Mathematik/Informatik, Universität Osnabrück Info B VL 11: Innere Klassen/Collections
MehrSummary. OO Principles OO Design Principles OO Design Patterns: Past, Present and Future. 1 June
Summary OO Principles OO Design Principles OO Design Patterns: Past, Present and Future 1 OOP Principles Encapsulation Methods and data are combined in classes Not unique to OOP Information Hiding Implementation
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 11. Juli 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 11. Juli 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrUniversität Karlsruhe (TH)
Vererbung Vererbung im Fall von Klassen Klassen unterstützen (nur) einfache Vererbung (engl. single inheritance ) Die Klasse object ist die allen gemeine Oberklasse (Hierarchie mit einer einzigen Wurzel)
MehrSoftware-Architektur Design Patterns
Design Patterns Prof. Dr. Oliver Braun Fakultät für Informatik und Mathematik Hochschule München SS 2015 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides: Design Patterns:
MehrÜberblick FBC SNW Zusammenfassung. Entwurfsmuster. Eine Einführung. Botond Draskoczy. Marcus Vitruvius Pollio
Entwurfsmuster Eine Einführung Botond Draskoczy Marcus Vitruvius Pollio Überblick Historie, Literatur Das Flugapparat-Bildschirmschoner-Projekt (FBP) Das internetbasierte Solar-Netzwerk (SNW) Zusammenfassung
MehrJava Tools JDK. IDEs. Downloads. Eclipse. IntelliJ. NetBeans. Java SE 8 Java SE 8 Documentation
Java Tools JDK http://www.oracle.com/technetwork/java/javase/ Downloads IDEs Java SE 8 Java SE 8 Documentation Eclipse http://www.eclipse.org IntelliJ http://www.jetbrains.com/idea/ NetBeans https://netbeans.org/
MehrSoftware Engineering II (IB) Design Patterns
Software Engineering II (IB) Design Patterns Prof. Dr. Oliver Braun Letzte Änderung: 16.05.2017 20:56 Software Engineering II (IB), Design Patterns 1/43 Standardwerk Gang of Four: Erich Gamma, Richard
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
MehrZusammenfassung. Mit bjam und ein paar Zeilen in einem Jamroot oder Jamfile lässt sich das Kompilieren und Linken einfach automatisieren
Zusammenfassung Deklaration einer Klasse im Header-File /.h-file Header-Files mit #pragma once vor double inclusion schützen möglichst Vorwärts-Deklarationen verwenden statt include-files einzubinden mindestens
MehrTeil 2: Weitere Aspekte der Objektorientierung
Teil 2: Weitere Aspekte der Objektorientierung Klassenvariablen So wie es Instanzvariablen gibt, die zu einer gewissen Instanz (Objekt) gehören und deren Attribute speichern, so gibt es aus Klassenvariablen:
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
MehrOOP und Angewandte Mathematik. Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik
Eine Einführung in die Anwendung objektorientierter Konzepte in der angewandten Mathematik WS 2011/12 Inhalt Test-Besprechung! Ziele verdeutlichen Große Bild von OOP Wiederholung: Einbettung als Technik
MehrEntwurfsmuster (Design Patterns)
Entwurfsmuster (Design Patterns) SEP 303 Entwurfsmuster (Design Patterns) In der alltäglichen Programmierarbeit tauchen viele Probleme auf, die man schon einmal gelöst hat und die man in der Zukunft wieder
Mehra.k.a. Broker a.k.a. Vermittler , Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz
Mediator Pattern a.k.a. Broker a.k.a. Vermittler 1 2009, Sebastian Gäng, Moritz Moll, Design Pattern, HTWG Konstanz Beschreibung Klassifikation: i Objektbasiertes b Verhaltensmuster hl Zweck: Wenn eine
MehrAlgorithmen und Datenstrukturen
Algorithmen und Datenstrukturen Tafelübung 03 Vererbung, Polymorphie, Sichtbarkeit, Interfaces Clemens Lang T2 11. Mai 2010 14:00 16:00, 00.152 Tafelübung zu AuD 1/26 Klassen und Objekte Klassen und Objekte
MehrInformatik II. Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017
1 Informatik II Übung 6 Giuseppe Accaputo, Felix Friedrich, Patrick Gruntz, Tobias Klenze, Max Rossmannek, David Sidler, Thilo Weghorn FS 2017 Heutiges Programm 2 1 Klassen - Technisch 2 Prediscussion
Mehr12. Java Klassen. Klassen - Technisch. Beispiel: Erdbebendaten. Klassen - Konzeptuell
Klassen - Technisch Eine Klasse ist eine Einheit mit einem Namen, die Daten und Funktionalität beinhaltet 12. Java Klassen Klassen, Typen, Objekte, Deklaration, Instanzierung, Konstruktoren, Kapselung,
MehrSoftware Engineering. 10. Entwurfsmuster II. Franz-Josef Elmer, Universität Basel, HS 2015
Software Engineering 10. Entwurfsmuster II Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: 10. Entwurfsmuster II 2 Die Entwurfsmuster der Gang of Four Die 23 GoF Pattern sind in 3 Gruppen
MehrBehavioral Patterns. Seminar Software-Entwurf WS 04/05. Przemyslaw Dul
Behavioral Patterns Seminar Software-Entwurf WS 04/05 Przemyslaw Dul Gliederung Design Pattern (Wiederholung) Einordnung Übersicht über die Kategorien: Creational,Structural,Behavioral Übersicht über die
MehrCreational Patterns. Seminar Software-Entwurf. Thomas Liro WS 2004/05.
Creational Patterns Seminar Software-Entwurf WS 2004/05 Thomas Liro Inhaltsüberblick Einordnung des Themas Beschreibung von Design Pattern Auswahl von Design Patterns Was sind Creational
MehrDesign Patterns. (Software-Architektur) Prof. Dr. Oliver Braun. Letzte Änderung: :12. Design Patterns 1/26
Design Patterns (Software-Architektur) Prof. Dr. Oliver Braun Letzte Änderung: 11.07.2017 15:12 Design Patterns 1/26 Standardwerk Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson & John Vlissides:
MehrSichtbarkeiten, Klassenmember und -methoden
Sichtbarkeiten, Klassenmember und -methoden Prof. Dr.-Ing. Thomas Schwotzer 11. November 2017 1 Einführung Wir haben uns mit Klassen und Objekten beschäftigt. Wir wissen nun, dass Objekte anhand von Klassen
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
Mehr3. Entwurfsmuster zur Entkopplung von Modulen. Übersicht zu Entwurfsmustern
3. Entwurfsmuster zur Entkopplung von Modulen OOP-3.1 Vorlesung Objektorientierte Programmierung WS 2013/2014 / Folie 301 Entwurfsmuster (Design Patterns): Idee der Entwurfsmuster verstehen Software-Entwicklungsaufgaben,
MehrPraxisorientierte Einführung in C++ Lektion: "Static Members"
Praxisorientierte Einführung in C++ Lektion: "Static Members" Christof Elbrechter Neuroinformatics Group, CITEC May 28, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ May 28, 2014 1 / 11
MehrSoftware Engineering II (IB) Design Patterns
Fakultät für Informatik und Mathematik Hochschule München Letzte Änderung: 16.05.2017 20:56 Inhaltsverzeichnis Standardwerk.................................... 2 Erzeugungsmuster.................................
Mehr1 Klassen und Objekte
1 Klassen und Objekte Datentyp - Spezifikation des Typs von Datenobjekten Datenstruktur - logische Ordnung von Elementen eines Datentyps - zur (effizienten) Speicherung, Verwaltung, Zugriff - auf die Elemente
Mehrkurze Wiederholung class templates
kurze Wiederholung class templates Ein class template ist ein Template, dass mit einem oder mehreren typename -Parametern implementiert wird. Um solch ein Template zu benutzen, übergibt man dem Template
MehrObjektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern
Thema Objektorientierte PL/SQL-Entwicklung Ein Erfahrungsbericht aus Sicht von JAVA-Entwicklern Referent: Frank Sanders Seite 1 Inhalt Der Vortrag hat einen sehr kurzen Einleitungsteil der sich mit Objektorientierung
MehrTutorium Softwaretechnik I
Tutorium Softwaretechnik I Moritz Klammler 27. Juni 2017 Fakultät für Informatik, IPD Tichy Titelfoto: Copyright (C) 2010 Multimotyl CC BY-SA 3.0 1 27. Juni 2017 Moritz Klammler - Tutorium Softwaretechnik
MehrUniversität Bremen. Entwurfsmuster. Thomas Röfer. Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster
Entwurfsmuster Thomas Röfer Wettbewerb Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Mein Rückblick: RoboCup 2 Euer Rückblick: Textsuche Naive Suche abrakadabra Boyer-Moore abrakadabra
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,
MehrLambda-Funktionen. Lambda-Funktionen. Lambda-Funktionen sollen
Lambda-Funktionen Lambda-Funktionen sind Funktionen ohne Namen. definieren ihre Funktionalität an Ort und Stelle. können wie Daten kopiert werden. können ihren Aufrufkontext speichern. Lambda-Funktionen
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
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
MehrPraxisorientierte Einführung in C++ Lektion: "Virtuelle Methoden"
Praxisorientierte Einführung in C++ Lektion: "Virtuelle Methoden" Christof Elbrechter Neuroinformatics Group, CITEC April 24, 2014 Christof Elbrechter Praxisorientierte Einführung in C++ April 24, 2014
MehrVererbung und Polymorphie
Vererbung und Polymorphie Marc Satkowski, Sascha Peukert 29. September 2016 C# Kurs Gliederung 1. Methodenüberladung 2. Vererbung Polymorphie Methoden- & Eigenschaftsüberschreibung Weitere Schlüsselwörter
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
MehrStructural Patterns. B. Sc. Andreas Meißner
Structural Patterns B. Sc. Andreas Meißner Seminar Software-Entwurf Fachgebiet Software Engineering, Institut für Angewandte Systeme, Universität Hannover 11/16/2004 Gliederung 1. Wiederholung Entwurfsmuster
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 21.03.2018 1 Ablauf Quiz und Recap Floating Point
Mehr13. Java Klassen. Lernziele. Klassen - Technisch. Definition: Klassen
Lernziele Sie können eigene Klassen/Datentypen erstellen. Sie verstehen, wie Objekte von Klassen instanziert und verwendet werden. Sie kennen den Begriff der Datenkapselung und können dies anwenden. 13.
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
MehrAlgorithmen zur Datenanalyse in C++
Algorithmen zur Datenanalyse in C++ Hartmut Stadie 11.06.2012 Algorithmen zur Datenanalyse in C++ Hartmut Stadie 1/ 28 Einführung Klassen Übung Algorithmen zur Datenanalyse in C++ Hartmut Stadie 2/ 28
MehrRepetitorium Programmieren I + II
Repetitorium Programmieren I + II Stephan Gimbel Johanna Mensik Michael Roth 24. September 2012 Agenda 1 Funktionen Aufbau und Anwendung Call by Value Call by Reference Überladen von Funktionen Default
MehrInnere Klassen. Innere Klassen. Page 1. Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen.
Innere Klassen Innere Klassen Lernziele: innere Klassen, statische geschachtelte Klassen, anonyme Klassen. Literatur: Java Tutorial & Arnold, K., Gosling, J. und Holmes,D... Page 1 Innere Klassen Der erste
MehrStatische und Nichtstatische Methoden Properties/ Eigenschaften
Statische und Nichtstatische Methoden Properties/ Eigenschaften Statische Methoden Definition und Merkmale von Properties Modifizierer Beispiele Nebeneffekte Dr. Beatrice Amrhein Statische / Nichtstatische
MehrGrundlagen der Programmierung in C Klassen
Grundlagen der Programmierung in C Klassen Wintersemester 2005/2006 G. Zachmann Clausthal University, Germany zach@in.tu-clausthal.de Das C++ Typsystem simple address pointer reference structured integral
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
MehrProzeduren vs. Funktionen
Prozeduren vs. Funktionen Mit der Formalisierung wird auch der Unterschied zwischen Prozeduren und Funktionen noch einmal klar. Der Aufruf beider Varianten bewirkt zunächst das Gleiche: die Eingabevariablen
MehrJava Idioms. Basic und Advanced Java Coding Style. Prof. Dr. Nikolaus Wulff
Java Idioms Basic und Advanced Java Coding Style Prof. Dr. Nikolaus Wulff Java Idiome Operator == versus equals Methode equals und hashcode Vermeide NullPointer Java Konstruktoren Function Pointers, Interfaces
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,
MehrProgrammierkurs. Steffen Müthing. November 30, Interdisciplinary Center for Scientific Computing, Heidelberg University
Programmierkurs Steffen Müthing Interdisciplinary Center for Scientific Computing, Heidelberg University November 30, 2018 Objektorientiertes Programmieren Kapselung const und Klassen Initialisierung und
MehrSE Besprechung. Übung 4 Architektur, Modulentwurf
SE Besprechung Übung 4 Architektur, Modulentwurf SE, 22.11.11 Mengia Zollinger 2.1 Architekturstile (6 Punkte) 2.1.A Ausgabe eines Monatsabos an Angestellte Lösung: Pipe-and-Filter Beispiel Lösung [Benz,
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.
Mehr10.4 Konstante Objekte
10.4 Konstante Objekte Genau wie bei einfachen Datentypen (int,double,...) kann man auch Objekte als const deklarieren. Eine solche Deklaration bedeutet, daß alle Attribute so behandelt werden, als wären
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
MehrThomas Sillmann. Swift im Detail HANSER
Thomas Sillmann Swift im Detail HANSER Inhalt 1 Apples neue Programmiersprache: Swift 1 1.1 Willkommen bei Swift! 1 1.2 Warum Swift? 1 1.3 Swift und Objective-C 2 1.4 Voraussetzungen für die Swift-Entwicklung
MehrOrder Ansicht Inhalt
Order Ansicht Inhalt Order Ansicht... 1 Inhalt... 1 Scope... 2 Orderansicht... 3 Orderelemente... 4 P1_CHANG_CH1... 6 Function: fc_ins_order... 7 Plug In... 8 Quelle:... 8 Anleitung:... 8 Plug In Installation:...
MehrC++ Klassen weitere Funktionen
C++ Klassen weitere Funktionen Übersicht static Elemente const Elemente Zusätzliches zu Konstruktoren Kopier-Konstruktor Konvertierung-Konstruktor Initialisierungslisten Friend Funktionen 2 Statische Klassenkomponenten
MehrDie abgeleiteten Klassen Kreis und Viereck erben die Elemente des Basisklasse und verfügen über zusätzliche Eigenschaften (Seitenlänge,
Kompaktkurs C++ Vererbung (inheritance) 1 Oft besitzen verschiedene Datentypen einen gemeinsamen Kern: Kreis und Viereck sind geometrische Figuren; sie haben eine Kantenzahl, eine Fläche, einen Umfang
MehrUniversität Bremen. Entwurfsmuster. Thomas Röfer. Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster
Entwurfsmuster Thomas Röfer Motivation Erzeugende Muster Strukturelle Muster Verhaltensmuster Rückblick UML Motivation Historie Spracheinheiten Strukturdiagramme Verhaltensdiagramme 2 Motivation Idee Einige
Mehr12 Abstrakte Klassen, finale Klassen und Interfaces
12 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrTest Driven Development
Test Driven Development Jedes Stück Code, dass man schreibt, muss getestet werden! Nicht getesteter Code gilt als nicht funktionierend! (Und mit hoher Wahrscheinlichkeit funktioniert er auch nicht.) Man
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
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
MehrInformatik für Mathematiker und Physiker Woche 2. David Sommer
Informatik für Mathematiker und Physiker Woche 2 David Sommer David Sommer 25. September 2018 1 Heute: 1. Self-Assessment 2. Feedback C++ Tutorial 3. Modulo Operator 4. Exercise: Last Three Digits 5. Binary
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
MehrEntwurfsmuster. Rainer Schmidberger
Entwurfsmuster Rainer Schmidberger schmidrr@informatik.uni-stuttgart.de Copyright 2004, Rainer Schmidberger, Universität Stuttgart, Institut für Softwaretechnologie, Abt. Software Engineering Was sind
MehrAllgemeines - Prinzipien
OOP - Prinzipien Allgemeines - Prinzipien OO modelliert die reale Welt als System interagierender Objekte Objekt = gedankliche oder reale Einheit in der Umwelt und/oder in Software Klar definierte Schnittstellen
Mehr9. Funktionen Teil II
9. Funktionen Teil II Prof. Dr. Markus Gross Informatik I für D-ITET (WS 03/04)!Inline Funktionen!Referenz-Variablen!Pass by Reference!Funktionsüberladung!Templates Copyright: M. Gross, ETHZ, 2003 2 Inline
Mehr1 Abstrakte Klassen, finale Klassen und Interfaces
1 Abstrakte Klassen, finale Klassen und Interfaces Eine abstrakte Objekt-Methode ist eine Methode, für die keine Implementierung bereit gestellt wird. Eine Klasse, die abstrakte Objekt-Methoden enthält,
MehrVererbung. Definition Felder Konstruktor Methoden Beispiel. Dr. Beatrice Amrhein
Vererbung Definition Felder Konstruktor Methoden Beispiel Dr. Beatrice Amrhein Definition 2 Definition: Vererbung Die Vererbung dient dazu, mit Hilfe von existierenden Klassen neue Klassen zu implementieren.
MehrCopy-on-write und Implicit Sharing in Qt
Copy-on-write und Implicit Sharing in Qt Roland Hieber Stratum 0 e. V. 14. Dezember 2012 Motivation class Node { double lat_ ; double lon_ ; public : Node () : lat_ (0), lon_ (0) {} Node ( double lat,
MehrAls erstes definiere ich einen Datentyp für einen Zeiger auf eine Funktion, die ein Element der Menge bearbeiten kann:
Dokumentation Die Implementation auf Basis eines Iterators 1.Art widerspricht etwas meinem bisherigen Design, weil ich in Konflikt mit den STL-Iteratoren komme. Da aber bereits feststeht, dass das Praktikum
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
MehrInformatik 1 Kurzprüfung 2 LÖSUNG
Informatik 1 Kurzprüfung 2 LÖSUNG Herbstsemester 2013 Dr. Feli Friedrich 4.12.2013 Name, Vorname:............................................................................ Legi-Nummer:..............................................................................
MehrProgrammiermethodik 3. Klausur Lösung
Programmiermethodik 3. Klausur Lösung 9. 1. 2014 Name Matrikelnummer Aufgabe mögliche Punkte erreichte Punkte 1 20 2 16 3 45 4 19 5 20 Gesamt 120 1 Seite 2 von 10 Aufgabe 1) Objekt-Orientierung und Vererbung
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
MehrC++ Teil 5. Sven Groß. 12. Nov IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Nov / 16
C++ Teil 5 Sven Groß IGPM, RWTH Aachen 12. Nov 2014 Sven Groß (IGPM, RWTH Aachen) C++ Teil 5 12. Nov 2014 1 / 16 Themen der letzten Vorlesung Eingabestrom, Verhalten von cin Namensräume Live Programming
MehrKapitel 10 Delegationsvariablen
Kapitel 10 Delegationsvariablen Korbinian Molitorisz IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe (TH) Agenda Wie werden
MehrProf. Dr. Wolfgang Schramm. Vorlesung. Techniken der Programmentwicklung. Exkurs: Anonyme Klassen
Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Prof. Dr. Wolfgang Schramm Vorlesung Exkurs: Anonyme Klassen Techniken der Programmentwicklung Anonyme Klassen
MehrStephan Brumme, SST, 3.FS, Matrikelnr
Aufgabe M3.1 Ich habe versucht, die Funktionalität als Baustein in Klassen zu verpacken. Mein Programm enthält daher keine Routinen zur Ein- / Ausgabe, falls man zu Testzwecken die Abläufe verfolgen will,
MehrObjektorientierte Programmierung mit C++
Warum besteht bei private-vererbung die IST EIN - Relation nicht? class A { class B : private A { public:... int i; B b; b.i = 1; // ERROR: `class B' has no member named `i' // Wenn ein B ein A wäre: A*
MehrNumerische Methoden und Algorithmen in der Physik
Numerische Methoden und Algorithmen in der Physik Hartmut Stadie, Christian Autermann 04.12.2008 Numerische Methoden und Algorithmen in der Physik Hartmut Stadie 1/ 33 Einführung Klassen Optimierung Vererbung
MehrÜbergang von funktionaler zu OOP. Algorithmen und Datenstrukturen II 1
Übergang von funktionaler zu OOP Algorithmen und Datenstrukturen II 1 Imperative vs. funktionale Programmierung Plakativ lassen sich folgende Aussagen treffen: funktional: imperativ: Berechnung von Werten
Mehr