C++ DER PROGRAMMIERER C++ 11 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 3. Auflage

Größe: px
Ab Seite anzeigen:

Download "C++ DER PROGRAMMIERER C++ 11 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 3. Auflage"

Transkript

1 ulrich BREYMANN L AKTUEL ZU 3. Auflage C++ 11 C++ DER PROGRAMMIERER // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN Entwicklungsumgebung, Compiler, alle Beispiele und mehr auf Inklusive»C++-Rezeptbuch«mit mehr als 150 praktischen Lösungen

2 Breymann Der C++-Programmierer Bleiben Sie auf dem Laufenden! Der Hanser Computerbuch-Newsletter informiert Sie regelmäßig über neue Bücher und Termine aus den verschiedenen Bereichen der IT. Profitieren Sie auch von Gewinnspielen und exklusiven Leseproben. Gleich anmelden unter

3

4 Ulrich Breymann Der C++-Programmierer C++ lernen professionell anwenden Lösungen nutzen 3., überarbeitete und aktualisierte Auflage

5 Prof. Dr. Ulrich Breymann lehrt Informatik an der Fakultät Elektrotechnik und Informatik der Hochschule Bremen Kontakt: Alle in diesem Buch enthaltenen Informationen, Verfahren und Darstellungen wurden nach bestem Wissen zusammengestellt und mit Sorgfalt getestet. Dennoch sind Fehler nicht ganz auszuschließen. Aus diesem Grund sind die im vorliegenden Buch enthaltenen Informationen mit keiner Verpflichtung oder Garantie irgendeiner Art verbunden. Autor und Verlag übernehmen infolgedessen keine juristische Verantwortung und werden keine daraus folgende oder sonstige Haftung übernehmen, die auf irgendeine Art aus der Benutzung dieser Informationen oder Teilen davon entsteht. Ebenso übernehmen Autor und Verlag keine Gewähr dafür, dass beschriebene Verfahren usw. frei von Schutzrechten Dritter sind. Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Buch berechtigt deshalb auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der Warenzeichen- und Markenschutz- Gesetzgebung als frei zu betrachten wären und daher von jedermann benutzt werden dürften. Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über abrufbar. Dieses Werk ist urheberrechtlich geschützt. Alle Rechte, auch die der Übersetzung, des Nachdruckes und der Vervielfältigung des Buches, oder Teilen daraus, vorbehalten. Kein Teil des Werkes darf ohne schriftliche Genehmigung des Verlages in irgendeiner Form (Fotokopie, Mikrofilm oder ein anderes Verfahren) auch nicht für Zwecke der Unterrichtsgestaltung reproduziert oder unter Verwendung elektronischer Systeme verarbeitet, vervielfältigt oder verbreitet werden Carl Hanser Verlag München, Lektorat: Brigitte Bauer-Schiewek Copy editing: Jürgen Dubau, Freiburg Herstellung: Irene Weilhart Umschlagdesign: Marc Müller-Bremer, München Umschlagrealisation: Stephan Rönigk Datenbelichtung, Druck und Bindung: Kösel, Krugzell Ausstattung patentrechtlich geschützt. Kösel FD 351, Patent-Nr Printed in Germany Print-ISBN: E-Book-ISBN:

6 Inhalt Vorwort Teil I: Einführung in C Es geht los! Historisches Objektorientierte Programmierung Compiler Das erste Programm Namenskonventionen Integrierte Entwicklungsumgebung Einfache Datentypen und Operatoren Ausdruck Ganze Zahlen Reelle Zahlen Konstante Zeichen Logischer Datentyp bool Referenzen Regeln zum Bilden von Ausdrücken Standard-Typumwandlungen Gültigkeitsbereich und Sichtbarkeit Namespace std... 59

7 6 Inhalt 1.8 Kontrollstrukturen Anweisungen Sequenz (Reihung) Auswahl (Selektion, Verzweigung) Fallunterscheidungen mit switch Wiederholungen Kontrolle mit break und continue Benutzerdefinierte und zusammengesetzte Datentypen Aufzählungstypen Strukturen Der C++-Standardtyp vector Zeichenketten: Der C++-Standardtyp string Container und Schleifen Typermittlung mit auto Unions und Bitfelder Einfache Ein- und Ausgabe Standardein- und -ausgabe Ein- und Ausgabe mit Dateien Programmstrukturierung Funktionen Aufbau und Prototypen Gültigkeitsbereiche und Sichtbarkeit in Funktionen Lokale static-variable: Funktion mit Gedächtnis Schnittstellen zum Datentransfer Übergabe per Wert Übergabe per Referenz Gefahren bei der Rückgabe von Referenzen Vorgegebene Parameterwerte und unterschiedliche Parameterzahl Überladen von Funktionen Funktion main() Beispiel Taschenrechnersimulation Spezifikation von Funktionen Alternative Funktions-Syntax Modulare Programmgestaltung Steuerung der Übersetzung nur mit #include Einbinden vorübersetzter Programmteile

8 Inhalt Dateiübergreifende Gültigkeit und Sichtbarkeit Übersetzungseinheit, Deklaration, Definition Compilerdirektiven und Makros Funktions-Templates Spezialisierung von Templates Einbinden von Templates inline-funktionen constexpr-funktionen Namensräume C++-Header Objektorientierung Abstrakte Datentypen Klassen und Objekte inline-elementfunktionen Initialisierung und Konstruktoren Standardkonstruktor Direkte Initialisierung der Attribute Allgemeine Konstruktoren Kopierkonstruktor Typumwandlungskonstruktor Konstruktor und mehr vorgeben oder verbieten Einheitliche Initialisierung und Sequenzkonstruktor Delegierender Konstruktor Beispiel: Rationale Zahlen Aufgabenstellung Entwurf Implementation const-objekte und Methoden Destruktoren Wie kommt man zu Klassen und Objekten? Ein Beispiel Gegenseitige Abhängigkeit von Klassen Intermezzo: Zeiger Zeiger und Adressen C-Arrays Initialisierung von C-Arrays Zeigerarithmetik

9 8 Inhalt C-Array und sizeof Indexoperator bei C-Arrays C-Array mit begin() und end() durchlaufen C-Zeichenketten Dynamische Datenobjekte Freigeben dynamischer Objekte Zeiger und Funktionen Parameterübergabe mit Zeigern Parameter des main-programms Gefahren bei der Rückgabe von Zeigern this-zeiger Mehrdimensionale C-Arrays Statische mehrdimensionale C-Arrays Dynamisch erzeugte mehrdimensionale Arrays Klasse für dynamisches zweidimensionales Array Binäre Ein-/Ausgabe Zeiger auf Funktionen Standard-Typumwandlungen für Zeiger Zeiger auf Elementfunktionen und -daten Zeiger auf Elementfunktionen Zeiger auf Elementdaten Komplexe Deklarationen lesen Lesbarkeit mit typedef und using verbessern Objektorientierung Eine String-Klasse Optimierung der Klasse MeinString friend-funktionen Klassenspezifische Daten und Funktionen Klassenspezifische Konstante Klassen-Templates Ein Stack-Template Stack mit statisch festgelegter Größe Template-Metaprogrammierung Variadic Templates: Templates mit variabler Parameterzahl Typbestimmung mit decltype declval

10 Inhalt 9 7 Vererbung Vererbung und Initialisierung Zugriffsschutz Typbeziehung zwischen Ober- und Unterklasse Code-Wiederverwendung Konstruktor erben Überschreiben von Funktionen in abgeleiteten Klassen Virtuelle Funktionen Abstrakte Klassen Virtueller Destruktor Probleme der Modellierung mit Vererbung Mehrfachvererbung Namenskonflikte Virtuelle Basisklassen Standard-Typumwandlungsoperatoren Typinformationen zur Laufzeit Using-Deklaration für protected-funktionen Private- und Protected-Vererbung Fehlerbehandlung Ausnahmebehandlung Exception-Spezifikation in Deklarationen Exception-Hierarchie in C Besondere Fehlerbehandlungsfunktionen Erkennen logischer Fehler Arithmetische Fehler / Division durch Speicherbeschaffung mit new Exception-Sicherheit Überladen von Operatoren Rationale Zahlen noch einmal Arithmetische Operatoren Ausgabeoperator << Eine Klasse für Vektoren Index-Operator [ ] Zuweisungsoperator = Mathematische Vektoren Multiplikationsoperator

11 10 Inhalt 9.3 Inkrement-Operator Typumwandlungsoperator Smart Pointer: Operatoren -> und * Smart Pointer und die C++-Standardbibliothek Objekt als Funktion Lambda-Funktionen new und delete überladen Speichermanagement mit malloc und free Unterscheidung zwischen Heap- und Stack-Objekten Fehlende delete-anweisung entdecken Eigene Speicherverwaltung für einen bestimmten Typ Empfehlungen im Umgang mit new und delete Mehrdimensionale Matrizen Zweidimensionale Matrix als Vektor von Vektoren Dreidimensionale Matrix Zuweisung bei Vererbung Dateien und Ströme Ausgabe Formatierung der Ausgabe Eingabe Manipulatoren Eigene Manipulatoren Fehlerbehandlung Typumwandlung von Dateiobjekten nach bool Arbeit mit Dateien Positionierung in Dateien Lesen und Schreiben in derselben Datei Umleitung auf Strings Ergänzungen Einführung in die Standard Template Library (STL) Container, Iteratoren, Algorithmen Iteratoren im Detail Beispiel verkettete Liste Reguläre Ausdrücke Elemente regulärer Ausdrücke

12 Inhalt Greedy oder lazy? Interaktive Auswertung Auszug des regex-apis Anwendungen Threads Zeit und Dauer Die Klasse thread Thread-Group Synchronisation Thread-Steuerung: pausieren, fortsetzen, beenden Data Race Interrupt Warten auf Ereignisse Reader/Writer-Problem Wenn Threads verhungern Reader/Writer-Varianten Thread-Sicherheit Teil II: Bausteine komplexer Anwendungen Grafische Benutzungsschnittstellen Ereignisgesteuerte Programmierung GUI-Programmierung mit Qt Installation und Einsatz Meta-Objektsystem Der Programmablauf Speicher sparen und lokal Daten sichern Signale, Slots und Widgets Dialog Qt oder Boost? Threads Verzeichnisbaum durchwandern Internet-Anbindung Protokolle Adressen Socket

13 12 Inhalt Bidirektionale Kommunikation UDP-Sockets Atomuhr mit UDP abfragen HTTP Verbindung mit GET Verbindung mit POST Mini-Webserver Datenbankanbindung C++-Interface Anwendungsbeispiel Teil III: Praktische Methoden und Werkzeuge der Softwareentwicklung Abläufe automatisieren mit make Quellen Wirkungsweise Variablen und Muster Universelles Makefile für einfache Projekte Unit-Test Werkzeuge Test Driven Development Boost Unit Test Framework Beispiel: Testgetriebene Entwicklung einer Operatorfunktion Fixture Testprotokoll und Log-Level Prüf-Makros Kommandozeilen-Optionen Werkzeuge zur Verwaltung von Projekten Dokumentation und Strukturanalyse mit doxygen Strukturanalyse Versionskontrolle Subversion Git Projektverwaltung

14 Inhalt 13 Teil IV: Das C++-Rezeptbuch: Tipps und Lösungen für typische Aufgaben Sichere Programmentwicklung Regeln zum Design von Methoden Defensive Programmierung double- und float-werte richtig vergleichen const und constexpr verwenden Anweisungen nach for/if/while einklammern int und unsigned/size_t nicht mischen size_t oder auto statt unsigned int verwenden Postfix++ mit Präfix++ implementieren Ein Destruktor darf keine Exception werfen explicit-typumwandlungsoperator bevorzugen explicit-konstruktor für eine Typumwandlung bevorzugen Leere Standardkonstruktoren vermeiden Mit override Schreibfehler reduzieren Kopieren und Zuweisung verbieten Vererbung verbieten Überschreiben einer virtuellen Methode verhindern The Big Three oder Big Five? One Definition Rule Defensiv Objekte löschen Speicherbeschaffung und -freigabe kapseln Programmierrichtlinien einhalten Exception-sichere Beschaffung von Ressourcen Sichere Verwendung von shared_ptr shared_ptr für Arrays korrekt verwenden unique_ptr für Arrays korrekt verwenden Exception-sichere Funktion Exception-sicherer Konstruktor Exception-sichere Zuweisung Aussagefähige Fehlermeldung ohne neuen String erzeugen Empfehlungen zur Thread-Programmierung Warten auf die Freigabe von Ressourcen Deadlock-Vermeidung notify_all oder notify_one? Performance mit Threads verbessern?

15 14 Inhalt 21 Von der UML nach C Vererbung Interface anbieten und nutzen Assoziation Aggregation Komposition Performance, Wert- und Referenzsemantik Performanceproblem Wertsemantik Auslassen der Kopie Temporäre Objekte bei der Zuweisung Referenzsemantik für R-Werte Optimierung durch Referenzsemantik für R-Werte Bewegender Konstruktor Bewegender Zuweisungsoperator Die move()-funktion Regel zur Template-Auswertung von &&-Parametern Ein effizienter binärer Plusoperator Kopien temporärer Objekte eliminieren Verbesserung durch verzögerte Auswertung Effektive Programmerzeugung Automatische Ermittlung von Abhängigkeiten Getrennte Verzeichnisse: src, obj, bin Makefile für Verzeichnisbäume Rekursive Make-Aufrufe Ein Makefile für alles Automatische Erzeugung von Makefiles Makefile für rekursive Aufrufe erzeugen Erzeugen von Bibliotheken Statische Bibliotheksmodule Dynamische Bibliotheksmodule GNU Autotools CMake Code Bloat bei der Instanziierung von Templates vermeiden extern-template Aufspaltung in Schnittstelle und Implementation

16 Inhalt Algorithmen für verschiedene Aufgaben Algorithmen mit Strings String splitten String in Zahl umwandeln Zahl in String umwandeln Strings sprachlich richtig sortieren Umwandlung in Klein- bzw. Großschreibung Strings sprachlich richtig vergleichen Von der Groß-/Kleinschreibung unabhängiger Zeichenvergleich Von der Groß-/Kleinschreibung unabhängige Suche Textverarbeitung Datei durchsuchen Ersetzungen in einer Datei Code-Formatierer Lines of Code (LOC) ermitteln Zeilen, Wörter und Zeichen einer Datei zählen CSV-Datei lesen Kreuzreferenzliste Operationen auf Folgen Container anzeigen Folge mit gleichen Werten initialisieren Folge mit Werten eines Generators initialisieren Folge mit fortlaufenden Werten initialisieren Summe und Produkt Mittelwert und Standardabweichung Skalarprodukt Folge der Teilsummen oder -produkte Folge der Differenzen Minimum und Maximum Elemente rotieren Elemente verwürfeln Dubletten entfernen Reihenfolge umdrehen Anzahl der Elemente, die einer Bedingung genügen Gilt X für alle, keins oder wenigstens ein Element einer Folge? Permutationen Lexikografischer Vergleich

17 16 Inhalt 24.4 Sortieren und Verwandtes Partitionieren Sortieren Stabiles Sortieren Partielles Sortieren Das n.-größte oder n.-kleinste Element finden Verschmelzen (merge) Suchen und Finden Element finden Element einer Menge in der Folge finden Teilfolge finden Bestimmte benachbarte Elemente finden Bestimmte aufeinanderfolgende Werte finden Binäre Suche Mengenoperationen auf sortierten Strukturen Teilmengenrelation Vereinigung Schnittmenge Differenz Symmetrische Differenz Heap-Algorithmen pop_heap push_heap make_heap sort_heap is_heap Vergleich von Containern auch ungleichen Typs Unterschiedliche Elemente finden Prüfung auf gleiche Inhalte Rechnen mit komplexen Zahlen: Der C++-Standardtyp complex Schnelle zweidimensionale Matrix Optimierung mathematischer Array-Operationen Singleton Implementierung mit einem Zeiger Implementierung mit einer Referenz Meyers Singleton Vermischtes

18 Inhalt Erkennung eines Datums Erkennung einer IP4-Adresse Erzeugen von Zufallszahlen for_each Auf jedem Element eine Funktion ausführen Verschiedene Möglichkeiten, Container-Bereiche zu kopieren Vertauschen von Elementen, Bereichen und Containern Elemente transformieren Ersetzen und Varianten Elemente herausfiltern Grenzwerte von Zahltypen Minimum und Maximum Ein- und Ausgabe Datei- und Verzeichnisoperationen Datei oder Verzeichnis löschen Datei oder Verzeichnis umbenennen Verzeichnis anlegen Verzeichnis anzeigen Verzeichnisbaum anzeigen Tabelle formatiert ausgeben Formatierte Daten lesen Eingabe benutzerdefinierter Typen Array als Block lesen oder schreiben Teil V: Die C++-Standardbibliothek Aufbau und Übersicht Auslassungen Beispiele des Buchs und die C++-Standardbibliothek Hilfsfunktionen und -klassen Relationale Operatoren Unterstützung der Referenzsemantik für R-Werte move() forward() Paare Tupel Funktionsobjekte

19 18 Inhalt Arithmetische, vergleichende und logische Operationen Funktionsobjekte zum Negieren logischer Prädikate Binden von Argumentwerten Funktionen in Objekte umwandeln Templates für rationale Zahlen Hüllklasse für Referenzen Type Traits Einfache Typ-Abfragen Container Gemeinsame Eigenschaften Initialisierungslisten Konstruktion an Ort und Stelle Reversible Container Sequenzen vector vector<bool> list deque stack queue priority_queue array Sortierte assoziative Container map multimap set multiset Hash-Container unordered_map unordered_multimap unordered_set unordered_multiset bitset Iteratoren Iterator-Kategorien Anwendung von Traits

20 Inhalt distance() und advance() Reverse-Iteratoren Insert-Iteratoren Stream-Iteratoren Algorithmen Algorithmen mit Prädikat Algorithmen mit binärem Prädikat Übersicht Nationale Besonderheiten Sprachumgebungen festlegen und ändern Die locale-funktionen Zeichensätze und -codierung Zeichenklassifizierung und -umwandlung Kategorien collate ctype numeric monetary time messages Konstruktion eigener Facetten String Speichermanagement unique_ptr, shared_ptr, weak_ptr new mit Speicherortangabe Numerische Arrays (valarray) Konstruktoren Elementfunktionen Binäre Valarray-Operatoren Mathematische Funktionen slice und slice_array gslice und gslice_array mask_array indirect_array

21 20 Inhalt 35 Ausgewählte C-Header <cassert> <cctype> <cerrno> <cmath> <cstdarg> <cstddef> <cstdio> <cstdlib> <cstring> <ctime> A Anhang A.1 ASCII-Tabelle A.2 C++-Schlüsselwörter A.3 Compilerbefehle A.4 Rangfolge der Operatoren A.5 Lösungen zu den Übungsaufgaben A.6 Installation der Software für Windows A.6.1 Installation des Compilers und der Entwicklungsumgebung A.6.2 Integrierte Entwicklungsumgebung einrichten A.6.3 De-Installation A.7 Installation der Software für Linux A.7.1 Installation des Compilers A.7.2 Installation von Boost A.7.3 Installation und Einrichtung von Code::Blocks A.7.4 Beispieldateien entpacken Glossar Literaturverzeichnis Register

22 Vorwort Diese Auflage dieses Buchs unterscheidet sich von der vorherigen durch die vollständige Umstellung auf den 2011 verabschiedeten ISO C++-Standard. Das Buch ist konform zum neuen C++-Standard, ohne den Anspruch auf Vollständigkeit zu erheben das Standard-Dokument [ISOC++] umfasst allein schon mehr als 1300 Seiten. Sie finden in diesem Buch eine verständliche und mit vielen Beispielen angereicherte Einführung in die Sprache. Im Teil»Das C++ Rezeptbuch«gibt es zahlreiche Tipps und Lösungen für typische Aufgaben, die in der täglichen Praxis anfallen. Es gibt konkrete, sofort umsetzbare Lösungsvorschläge. Zahlreiche Algorithmen für praxisnahe Problemstellungen helfen bei der täglichen Arbeit. Auf größtmögliche Portabilität wird geachtet: Die Beispiele funktionieren unter Linux genau so wie unter Windows. Die problembezogene Orientierung lässt die in die Sprache einführenden Teile kürzer werden. Damit wird das Lernen erleichtert, und die Qualität des Buchs, auch als Nachschlagewerk dienen zu können, bleibt erhalten. Für wen ist dieses Buch geschrieben? Dieses Buch ist für alle geschrieben, die einen kompakten und gleichzeitig gründlichen Einstieg in die Konzepte und Programmierung mit C++ suchen. Es ist für Anfänger 1 gedacht, die noch keine Programmiererfahrung haben, aber auch für Programmierer, die diese Programmiersprache kennen lernen möchten. Beiden Gruppen und auch C++- Erfahrenen dient das Buch als ausführliches Nachschlagewerk. Die ersten 11 Kapitel führen in die Sprache ein. Es wird sehr schnell ein Verständnis des objektorientierten Ansatzes entwickelt. Die sofortige praktische Umsetzung des Gelernten steht im Vordergrund. C++ wird als Programmiersprache unabhängig von speziellen Produkten beschrieben; C-Kenntnisse werden nicht vorausgesetzt. Das Buch eignet sich zum Selbststudium und als Begleitbuch zu einer Vorlesung oder zu Kursen. Die vielen Beispiele sind leicht nachzuvollziehen und praxisnah umsetzbar. Klassen und Objekte, Templates und Exceptions sind Ihnen bald keine Fremdworte mehr. Es gibt mehr als 90 1 Geschlechtsbezogene Formen meinen hier und im Folgenden stets Männer und Frauen.

23 22 Vorwort Übungsaufgaben mit Musterlösungen im Anhang. Durch das Studium dieser Kapitel werden aus Anfängern bald Fortgeschrittene. Diesen und anderen Fortgeschrittenen und Profis bietet das Buch kurze Einführungen in die Themen Thread-Programmierung, Netzwerk-Programmierung mit Sockets einschließlich eines kleinen Webservers, Datenbankanbindung, grafische Benutzungsoberflächen und mehr. Dabei wird durch Einsatz der Boost-Library und des Qt-Frameworks größtmögliche Portabilität erreicht. Softwareentwicklung ist nicht nur Programmierung: Einführend werden anhand von Beispielen unter anderem die Automatisierung der Programmerzeugung mit Make, die Dokumentationserstellung mit Doxygen und die Versionskontrolle behandelt. Das Programmdesign wird durch konkrete Umsetzungen von UML 2 -Mustern nach C++ unterstützt. Das integrierte»c++-rezeptbuch«mit mehr als 150 praktischen Lösungen, das sehr umfangreiche Register und das detaillierte Inhaltsverzeichnis machen das Buch zu einem praktischen Nachschlagewerk für alle, die sich mit der Softwareentwicklung in C++ beschäftigen. Übersicht Schwerpunkt von Teil I ist die Einführung in die Programmiersprache. Die anschließenden Teile gehen darüber hinaus und konzentrieren sich auf die verschiedenen Probleme der täglichen Praxis. Die in dieser Übersicht verwendeten Begriffe mögen Ihnen zum Teil noch unbekannt sein in den betreffenden Kapiteln werden sie ausführlich erläutert. Teil I Einführung in C++ Das Kapitel 1 vermittelt zunächst die Grundlagen, wie ein Programm geschrieben und zum Laufen gebracht wird. Es folgen einfache Datentypen und Anweisungen zur Kontrolle des Programmablaufs. Die Einführung der C++-Datentypen vector und string beendet das Kapitel. Kapitel 2 beschäftigt sich mit der einfachen Ein- und Ausgabe, auch mit Dateien. Das Kapitel 3 zeigt Ihnen, wie Sie Funktionen schreiben. Makros, Templates für Funktionen und die modulare Gestaltung von Programmen folgen. Objektorientierung ist der Schwerpunkt von Kapitel 4. Dabei geht es nicht nur um die Konstruktion von Objekten, sondern auch um den Weg von der Problemstellung zu Klassen und Objekten. Zeiger, einfache Arrays (C-Arrays) und Zeichenketten sowie die Erzeugung von Objekten zur Laufzeit sind Inhalt von Kapitel 5. Dazu kommen mehrdimensionale C-Arrays und das Schreiben und Lesen von Binärdaten in bzw. aus Dateien. Auf der Basis von Zeigern führt Kapitel 6 das Thema Objektorientierung fort. Dabei lernen Sie kennen, wie eine String-Klasse funktioniert, und wie Sie Klassen-Templates und Templates mit einer variablen Anzahl von Parametern konstruieren. Das Kapitel 7 zeigt Ihnen das Mittel objektorientierter Sprachen, um Generalisierungs- und Spezialisierungsbeziehungen auszudrücken: die Vererbung mit ihren Möglichkeiten. Strategien zur Fehlerbehandlung mit Exceptions finden Sie in Kapitel 8. Das Kapitel 9 zeigt, wie Sie Operatorsymbolen wie + und - eigene Bedeutungen zuweisen können und in welchem Zusammenhang das sinnvoll ist. Sie lernen,»intelligente«zeiger (Smart Pointer) zu konstruieren und Objekte als Funktionen einzusetzen. Kapitel 10 beschreibt ausführlich die 2 UML ist eine grafische Beschreibungssprache für die objektorientierte Programmierung.

24 Vorwort 23 Ein- und Ausgabemöglichkeiten, die in Kapitel 2 nur einführend gestreift werden, einschließlich der Fehlerbehandlung und der Formatierung der Ausgabe. Eine Einführung in die Standard Template Library (STL) bietet Kapitel 11. Es zeigt, wie die Komponenten (Container, Iteratoren und Algorithmen) zusammenwirken. Die STL und ihre Wirkungsweise bilden die Grundlage eines sehr großen Teils der C++-Standardbibliothek. Die Kapitel 1 bis 11 sind für ein gutes Verständnis von C++ unverzichtbar. Reguläre Ausdrücke (Kapitel 12) und die Programmierung paralleler Abläufe mit Threads (Kapitel 13) sind dazu nicht notwendig hierbei handelt es sich um Ergänzungen, wie sie von vielen Programmiersprachen angeboten werden. Teil II Bausteine komplexer Anwendungen Ein Programm benötigt eine Möglichkeit, mit der Außenwelt zu kommunizieren. Tastatur und Konsole allein reichen für komplexe Anwendungen in der Regel nicht aus. Mausbedienung und Bildschirmgrafik sind heute Standard bei Desktop-Anwendungen. Das Kapitel 14 zeigt, wie grafische Benutzungsschnittstellen konstruiert werden. Wie ein Programm die Verbindung mit dem Internet aufnehmen kann, dokumentiert das Kapitel 15. Und wohin mit den ganzen Daten, die bei Programmende nicht verloren gehen sollen? In Kapitel 16 lernen Sie, wie ein Programm an eine Datenbank angebunden wird. Die genannten Themen sind so umfangreich, dass sie selbst Bücher füllen. Dieser Teil bietet Ihnen daher nur einen Einstieg. Teil III Praktische Methoden und Werkzeuge der Softwareentwicklung Die Entwicklung von Programmen besteht nicht nur im Schreiben von Code. Die Compilation eines Projekts mit vielen Programmdateien und Abhängigkeiten kann schnell ein komplexer Vorgang werden. Die Automatisierung dieses Prozesses mit dem Tool make ist Thema von Kapitel 17. Programme sind nicht auf Anhieb fehlerfrei. Sie müssen getestet werden: Kapitel 18 stellt ein Werkzeug für den Unit-Test vor und zeigt den praktischen Einsatz. Kapitel 19 demonstriert ein Werkzeug zur automatischen Dokumentationserstellung und geht kurz auf die Versionsverwaltung und die Projektverwaltung ein. Teil IV Das C++-Rezeptbuch: Tipps und Lösungen für typische Aufgaben Sichere Programmentwicklung ist die Überschrift des Kapitels 20. Sie finden dort Regeln zum Design von Methoden und mehrere Tipps zur defensiven Programmierung, die die Risiken falscher Algorithmen oder falscher Benutzung vermindern. Auch gibt es Tipps zur exception-sicheren Beschaffung von Speicher und zur Thread-Programmierung. Kapitel 21 zeigt Rezepte, wie Sie bestimmte UML-Muster in C++-Konstruktionen umwandeln können. Kapitel 22 erklärt den Unterschied zwischen Wert- und Referenzsemantik und die Auswirkung auf die Geschwindigkeit von C++-Programmen. Es werden Empfehlungen gegeben und am Beispiel konkretisiert, wie die Performanz deutlich verbessert werden kann. Kapitel 23 erweitert die Grundlagen des Kapitels 17 um praktische Rezepte zur automatischen Ermittlung von Abhängigkeiten zwischen Programmdateien, Makefiles für Verzeichnisbäume, die automatische Erzeugung von Makefiles und statischer und dynamischer Bibliotheken. Algorithmen für viele verschiedene Aufgaben finden Sie in Kapitel 24. Wegen der Vielzahl empfiehlt sich ein Blick in das Inhaltsverzeichnis, um einen Überblick zu gewinnen. Der C++-Standard bietet für viele Datei- und Verzeichnis-

25 24 Vorwort operationen keine Unterstützung an. Kapitel 25 enthält deshalb fertige Rezepte zum Anlegen, Löschen und Lesen von Verzeichnissen und mehr auf der Basis der Boost-Library. Ergänzt wird dies durch das formatierte Lesen und Schreiben von Daten und die Abspeicherung binärer Daten als Block. Teil V Die C++-Standardbibliothek In mehreren Kapiteln wird die C++-Standardbibliothek in Kürze beschrieben. Die Inhalte dieses Teils sind: Hilfsfunktionen und -klassen, Container, Iteratoren, Algorithmen, Einstellung nationaler Besonderheiten, String, Speicherverwaltung, Funktionen der Programmiersprache C. Anhang Der Anhang enthält unter anderem verschiedene hilfreiche Tabellen und die Lösungen der Übungsaufgaben. Wo finden Sie was? Bei der Programmentwicklung wird häufig das Problem auftauchen, etwas nachschlagen zu müssen. Es gibt die folgenden Hilfen: Erklärungen zu Begriffen sind im Glossar ab Seite 957 aufgeführt. Es gibt ein recht umfangreiches Stichwortverzeichnis ab Seite 971 und ein sehr detailliertes Inhaltsverzeichnis. Software zum Buch Auf der Webseite finden Sie die Software zu diesem Buch. Sie enthält unter anderem einen Compiler, eine Integrierte Entwicklungsumgebung sowie alle Programmbeispiele und die Lösungen zu den Aufgaben. Sie finden dort auch weitere Hinweise, Errata und nützliche Links. Zu guter Letzt Allen Menschen, die dieses Buch durch Hinweise und Anregungen verbessern halfen, sei an dieser Stelle herzlich gedankt. Frau Brigitte Bauer-Schiewek und Frau Irene Weilhart vom Hanser Verlag danke ich für die sehr gute Zusammenarbeit. Bremen, im Januar 2014 Ulrich Breymann

26 I. Teil I: Einführung in C++

27

28 1 Es geht los! Dieses Kapitel behandelt die folgenden Themen: Entstehung und Entwicklung der Programmiersprache C++ Objektorientierte Programmierung Erste Grundlagen Wie schreibe ich ein Programm und bringe es zum Laufen? Einfache Datentypen und Operationen Ablauf innerhalb eines Programms steuern Erste Definition eigener Datentypen Standarddatentypen vector und string 1.1 Historisches C++ wurde etwa ab 1980 von Bjarne Stroustrup als Sprache, die Objektorientierung stark unterstützt, entwickelt und 1998 von der ISO (International Standards Organisation) und der IEC (International Electrotechnical Commission) standardisiert. Diesem Standard haben sich nationale Standardisierungsgremien wie ANSI (USA) und DIN (Deutschland) angeschlossen. Mittlerweile ist der C++-Standard, zu dem es 2003 einige Korrekturen gab, in die Jahre gekommen. Die Anforderungen an C++ sind gewachsen, auch zeigte sich, dass manches im Standard fehlte und anderes überflüssig oder fehlerhaft war. Das C++- Standardkomitee hat kontinuierlich an der Entwicklung des nächsten C++-Standards gearbeitet. Der Standardisierungsprozess dauerte länger als geplant, aber 2011 war es soweit: Der neue Standard, kurz C++11 genannt, wurde verabschiedet.

29 28 1 Es geht los! 2006 wurde beschlossen, den sogenannten TR1 (Technical Report 1) mit der Ausnahme spezieller mathematischer Funktionen in den Standard aufzunehmen. Der TR1 besteht aus teilweise erheblichen Erweiterungen der C++-Standardbibliothek. Der TR1 wurde von Boost [boost] entwickelt, einer Community, die von Mitgliedern der»c++ Standards Committee Library Working Group«gegründet wurde und an der sich heute Tausende von Entwicklern beteiligen. Bereits vor der Integration in den C++-Standard haben die Boost- Bibliotheken vielfachen Einsatz gefunden. Weitere Erweiterungen sind in Arbeit. Im März 2010 wurde der»final Committe Draft«veröffentlicht und zur Abstimmung gestellt. Im April 2011 wurde der»final Draft International Standard (FDIS)«[ISOC++] publiziert, der Ende 2011 in den endgültigen Standard mündete. ISO-Standards sind kostenpflichtig. Wegen des jahrelangen Abstimmungsprozesses unterscheidet sich der endgültige Standard nur minimal vom FDIS. Deshalb verweise ich in diesem Buch auf das per Internet zugängliche Dokument [ISOC++]. 1.2 Objektorientierte Programmierung Nach üblicher Auffassung heißt Programmieren, einem Rechner mitzuteilen, was er tun soll und wie es zu tun ist. Ein Programm ist ein in einer Programmiersprache formulierter Algorithmus oder, anders ausgedrückt, eine Folge von Anweisungen, die der Reihe nach auszuführen sind, ähnlich einem Kochrezept, geschrieben in einer besonderen Sprache, die der Rechner»versteht«. Der Schwerpunkt dieser Betrachtungsweise liegt auf den einzelnen Schritten oder Anweisungen an den Rechner, die zur Lösung einer Aufgabe abzuarbeiten sind. Was fehlt hier beziehungsweise wird bei dieser Sicht eher stiefmütterlich behandelt? Der Rechner muss»wissen«, womit er etwas tun soll. Zum Beispiel soll er eine bestimmte Summe Geld von einem Konto auf ein anderes transferieren; eine Ampelanlage steuern; ein Rechteck auf dem Bildschirm zeichnen. Häufig, wie in den ersten beiden Fällen, werden Objekte der realen Welt (Konten, Ampelanlage...) simuliert, das heißt im Rechner abgebildet. Die abgebildeten Objekte haben eine Identität. Das Was und das Womit gehören stets zusammen. Beide sind also Eigenschaften eines Objekts und sollten besser nicht getrennt werden. Ein Konto kann schließlich nicht auf Gelb geschaltet werden, und eine Überweisung an eine Ampel ist nicht vorstellbar. Ein objektorientiertes Programm kann man sich als Abbildung von Objekten der realen Welt in Software vorstellen. Die Abbildungen werden selbst wieder Objekte genannt. Klassen sind Beschreibungen von Objekten. Die objektorientierte Programmierung berücksichtigt besonders die Kapselung von Daten und den darauf ausführbaren Funktionen sowie die Wiederverwendbarkeit von Software und die Übertragung von Eigenschaften von Klassen auf andere Klassen, Vererbung genannt. Auf die einzelnen Begriffe wird noch eingegangen.

30 1.2 Objektorientierte Programmierung 29 Das Motiv hinter der objektorientierten Programmierung ist die rationelle und vor allem ingenieurmäßige Softwareentwicklung. Unter»Softwarekrise«wird das Phänomen verstanden, dass viele Softwareprojekte nicht im geplanten Zeitraum fertig werden, dass das finanzielle Budget überschritten wird oder die Projekte ganz abgebrochen werden. Die objektorientierte Programmierung wird als ein Mittel angesehen, das zur Lösung der»softwarekrise«beitragen kann. Wiederverwendung heißt, Zeit und Geld zu sparen, indem bekannte Klassen wiederverwendet werden. Das Leitprinzip ist hier, das Rad nicht mehrfach neu zu erfinden! Unter anderem durch den Vererbungsmechanismus kann man Eigenschaften von bekannten Objekten ausnutzen. Zum Beispiel sei Konto eine bekannte Objektbeschreibung mit den»eigenschaften«inhaber, Kontonummer, Betrag, Dispo-Zinssatz und so weiter. In einem Programm für eine Bank kann nun eine Klasse Waehrungskonto entworfen werden, für die alle Eigenschaften von Konto übernommen (= geerbt) werden könnten. Zusätzlich wäre nur noch die Eigenschaft»Währung«hinzuzufügen. Wie Computer können auch Objekte Anweisungen ausführen. Wir müssen ihnen nur»erzählen«, was sie tun sollen, indem wir ihnen eine Auf forderung oder Anweisung senden, die in einem Programm formuliert wird. Anstelle der Begriffe»Aufforderung«oder»Anweisung«wird in der Literatur manchmal Botschaft (englisch message) verwendet, was jedoch den Aufforderungscharakter nicht zur Geltung bringt. Eine gängige Notation (= Schreibweise) für solche Aufforderungen ist Objektname.Anweisung( gegebenenfalls Daten). Beispiele: dieampel.blinken(gelb); dieampel.ausschalten(); // keine Daten notwendig! dieampel.einschalten(gruen); dasrechteck.zeichnen(position, hoehe, breite); dasrechteck.verschieben(5.0); // Daten in cm Die Beispiele geben schon einen Hinweis, dass die Objektorientierung uns ein Hilfsmittel zur Modellierung der realen Welt in die Hand gibt. Klassen Es muss unterschieden werden zwischen der Beschreibung von Objekten und den Objekten selbst. Die Beschreibung besteht aus Attributen und Operationen. Attribute bestehen aus einem Namen und Angaben zum Datenformat der Attributwerte. Eine Kontobeschreibung könnte so aussehen: Attribute: Inhaber: Folge von Buchstaben Kontonummer: Zahl Betrag: Zahl Dispo-Zinssatz in %: Zahl Operationen: überweisen (Ziel-Kontonummer, Betrag) abheben(betrag) einzahlen(betrag)

Vorwort. Der C++-Programmierer (3. Auflage)

Vorwort. Der C++-Programmierer (3. Auflage) Vorwort zu Der C++-Programmierer (3. Auflage) von Ulrich Breymann ISBN (Buch): 978-3-446-43894-1 ISBN (E-Book): 978-3-446-43953-5 Weitere Informationen und Bestellungen unter http://www.hanser-fachbuch.de/978-3-446-43894-1

Mehr

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN:

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: Vorwort Ulrich Breymann Der C++-Programmierer C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-42691-7 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42691-7

Mehr

C++ DER PROGRAMMIERER // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU C++14. ulrich BREYMANN

C++ DER PROGRAMMIERER // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU C++14. ulrich BREYMANN ulrich BREYMANN L AKTUEL ZU 4. Auflage C++14 C++ DER PROGRAMMIERER // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN Entwicklungsumgebung, Compiler, alle Beispiele und mehr auf www.cppbuch.de Inklusive»C++-Rezeptbuch«mit

Mehr

Vorwort 21. Teil I: Einführung in C++ 25

Vorwort 21. Teil I: Einführung in C++ 25 Vorwort 21 Teil I: Einführung in C++ 25 1 Es geht los! 27 1.1 Historisches 27 1.2 Objektorientierte Programmierung 28 1.3 Compiler 31 1.4 Das erste Programm 31 1.4.1 Namenskonventionen 36 1.5 Integrierte

Mehr

Der C++-Programmierer

Der C++-Programmierer Ulrich Breymann Der C++-Programmierer C++ lernen - Professionell anwenden - Lösungen nutzen HANSER Vorwort 21 Teil I: Einführung in C++ 25 1 Es geht los! 27 1.1 Historisches 27 1.2 Objektorientierte Programmierung

Mehr

Der C++-Programmierer

Der C++-Programmierer Ulrich Breymann Der C++-Programmierer C++ lernen - Professionell anwenden - Lösungen nutzen HANSER Vorwort 21 Teil I: Einführung in C++ 25 1 Es geht los! 27 1.1 Historisches 27 1.2 Objektorientierte Programmierung

Mehr

// C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN // DER PROGRAMMIERER C++

// C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN // DER PROGRAMMIERER C++ // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN // ulrich BREYMANN DER PROGRAMMIERER C++ Breymann Der C++-Programmierer vbleiben Sie einfach auf dem Laufenden: www.hanser.de/newsletter Sofort

Mehr

C++ DER PROGRAMMIERER C++ 11 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 3. Auflage

C++ DER PROGRAMMIERER C++ 11 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 3. Auflage ulrich BREYMANN L AKTUEL ZU 3. Auflage C++ 11 C++ DER PROGRAMMIERER // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN Entwicklungsumgebung, Compiler, alle Beispiele und mehr auf www.cppbuch.de

Mehr

C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN. EXTRA: Mit kostenlosem E-Book. ulrich BREYMANN. 2.

C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN. EXTRA: Mit kostenlosem E-Book. ulrich BREYMANN. 2. 2. Auflage ulrich BREYMANN C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN EXTRA: Mit kostenlosem E-Book Auf DVD: Entwicklungsumgebung, Compiler, weitere Tools, alle Beispiele des

Mehr

C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN. EXTRA: Mit kostenlosem E-Book. ulrich BREYMANN. 2.

C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN. EXTRA: Mit kostenlosem E-Book. ulrich BREYMANN. 2. 2. Auflage ulrich BREYMANN C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN EXTRA: Mit kostenlosem E-Book Auf DVD: Entwicklungsumgebung, Compiler, weitere Tools, alle Beispiele des

Mehr

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4

Vorwort. Ulrich Breymann. Der C++-Programmierer. C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4 Vorwort Ulrich Breymann Der C++-Programmierer C++ lernen - Professionell anwenden - Lösungen nutzen ISBN: 978-3-446-41644-4 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41644-4

Mehr

C++ Einführung und professionelle Programmierung

C++ Einführung und professionelle Programmierung Ulrich Breymann C++ Einführung und professionelle Programmierung ISBN-10: 3-446-41023-6 ISBN-13: 978-3-446-41023-7 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41023-7

Mehr

C++ DER PROGRAMMIERER C++14 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 4. Auflage

C++ DER PROGRAMMIERER C++14 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 4. Auflage ulrich BREYMANN L AKTUEL ZU 4. Auflage C++14 C++ DER PROGRAMMIERER // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN Entwicklungsumgebung, Compiler, alle Beispiele und mehr auf www.cppbuch.de

Mehr

C++ eine Einführung. ulrich BREYMANN. Für Windows, Linux & Mac. C++ downloaded from by

C++ eine Einführung. ulrich BREYMANN. Für Windows, Linux & Mac. C++ downloaded from  by C++ C++ C+ ulrich BREYMANN C++ eine Einführung Entwicklungsumgebung, Compiler, alle Beispiele und mehr auf www.cppbuch2.de Für Windows, Linux & Mac Breymann C++ eine Einführung Bleiben Sie auf dem Laufenden!

Mehr

C++ Einführung und professionelle Programmierung. von Ulrich Breymann. 8., erweiterte Auflage. Hanser München 2005

C++ Einführung und professionelle Programmierung. von Ulrich Breymann. 8., erweiterte Auflage. Hanser München 2005 C++ Einführung und professionelle Programmierung von Ulrich Breymann 8., erweiterte Auflage Hanser München 2005 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 40253 9 schnell und portofrei erhältlich

Mehr

C++ DER PROGRAMMIERER C++14 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 4. Auflage

C++ DER PROGRAMMIERER C++14 // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN AKTUEL ZU. 4. Auflage ulrich BREYMANN L AKTUEL ZU 4. Auflage C++14 C++ DER PROGRAMMIERER // C++ LERNEN // PROFESSIONELL ANWENDEN // LÖSUNGEN NUTZEN Entwicklungsumgebung, Compiler, alle Beispiele und mehr auf www.cppbuch.de

Mehr

Vorwort... 25. Teil I: Einführung in C++... 29

Vorwort... 25. Teil I: Einführung in C++... 29 Inhalt Vorwort... 25 Teil I: Einführung in C++... 29 1 Es geht los!... 31 1.1 Historisches... 31 1.2 Objektorientierte Programmierung... 32 1.3 Compiler... 34 1.4 Das erste Programm... 35 1.4.1 Namenskonventionen...

Mehr

Objektorientiert in C++

Objektorientiert in C++ Dirk Louis Objektorientiert in C++ Einstieg und professioneller Einsatz intwickier.pres: Vorwort 11 1 Schnellkurs C++ 13 1.1 ANSI-C++ und die Compiler 13 Compiler und Programmerstellung 13 ANSI und die

Mehr

C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN. EXTRA: Mit kostenlosem E-Book. ulrich BREYMANN. 2.

C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN. EXTRA: Mit kostenlosem E-Book. ulrich BREYMANN. 2. 2. Auflage ulrich BREYMANN C++ DER PROGRAMMIERER C++ LERNEN PROFESSIONELL ANWENDEN LÖSUNGEN NUTZEN EXTRA: Mit kostenlosem E-Book Auf DVD: Entwicklungsumgebung, Compiler, weitere Tools, alle Beispiele des

Mehr

C++ Einführung und professionelle Programmierung

C++ Einführung und professionelle Programmierung Ulrich Breymann C++ Einführung und professionelle Programmierung ISBN-10: 3-446-41023-6 ISBN-13: 978-3-446-41023-7 Vorwort Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41023-7

Mehr

Inhaltsverzeichnis. Vorwort

Inhaltsverzeichnis. Vorwort Inhaltsverzeichnis Vorwort XI 1 C/C++-Grundlagen 1 1.1 Einführung................................ 1 1.1.1 Entwicklungsgeschichte: Von K&R-C nach C++........ 1 1.1.2 Beispielprogramme.......................

Mehr

WIRTSCHAFTS- INFORMATIK

WIRTSCHAFTS- INFORMATIK franz LEHNER stephan WILDNER michael SCHOLZ WIRTSCHAFTS- INFORMATIK EINE EINFÜHRUNG Für Bachelors geeignet 2. Auflage Lehner/Wildner/Scholz Wirtschaftsinformatik vbleiben Sie einfach auf dem Laufenden:

Mehr

WIRTSCHAFTS- INFORMATIK

WIRTSCHAFTS- INFORMATIK franz LEHNER stephan WILDNER michael SCHOLZ WIRTSCHAFTS- INFORMATIK EINE EINFÜHRUNG Für Bachelors geeignet 2. Auflage Lehner/Wildner/Scholz Wirtschaftsinformatik vbleiben Sie einfach auf dem Laufenden:

Mehr

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp

Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden. ffl mitp Peter Prinz Ulla Kirch-Prinz C+ + Lernen und professionell anwenden ffl mitp Inhaltsverzeichnis Einleitung 19 1 Grundlagen 21 Entwicklung und Eigenschaften von C + + 22 Objektorientierte Programmierung

Mehr

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71

... Vorwort Einstieg in die Programmierung Ablaufsteuerung... 71 ... Vorwort... 13 1... Einstieg in die Programmierung... 15 1.1... Programmieren... 15 1.1.1... Start eines Programms... 15 1.1.2... Eintippen, übersetzen, ausführen... 16 1.1.3... Der Algorithmus... 18

Mehr

Objektorientiertes Programmieren für Ingenieure

Objektorientiertes Programmieren für Ingenieure Uwe Probst Objektorientiertes Programmieren für Ingenieure Anwendungen und Beispiele in C++ Probst Objektorientiertes Programmieren für Ingenieure Bleiben Sie auf dem Laufenden! Hanser Newsletter informieren

Mehr

Arnold Willemer C++ Der Einstieg. WlLEY

Arnold Willemer C++ Der Einstieg. WlLEY Arnold Willemer C++ Der Einstieg WlLEY altsverzeichnis Vorwort 13 1 Einstieg in die Programmierung 15 1.1 Programmieren 15 1.1.1 Start eines Programms 16 1.1.2 Eintippen, übersetzen, ausführen 17 1.1.3

Mehr

Arnold Willemer. Einstieg in C++ Galileo Press

Arnold Willemer. Einstieg in C++ Galileo Press Arnold Willemer Einstieg in C++ Galileo Press Vorwort 13 1.1 Programmieren 17 1.1.1 Start eines Programms 17 1.1.2 Eintippen, übersetzen, ausführen 18 1.1.3 Der Algorithmus 20 1.1.4 Die Sprache C++ 21

Mehr

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen

Kapitel 2 Elementare Datentypen, Konstanten und Variablen Elementare Datentypen Inhaltsverzeichnis Einleitung Kapitel 1 Grundlagen Entwicklung und Eigenschaften von C++ Objektorientierte Programmierung Erstellen eines C++- Programms Ein erstes C++-Programm Struktur einfacher C++-Programme

Mehr

Objektorientiertes Programmieren in C++

Objektorientiertes Programmieren in C++ Nicolai Josuttis Objektorientiertes Programmieren in C++ Von der Klasse zur Klassenbibliothek D-64289 Darmstadt ADDISON-WESLEY PUBLISHING COMPANY Bonn Paris Reading, Massachusetts Menlo Park, California

Mehr

Inhaltsverzeichnis. Vorwort.11

Inhaltsverzeichnis. Vorwort.11 Inhaltsverzeichnis Vorwort.11 Kapitel 1 Einführung in die C-Programmierung 17 1.1 Ein erstes C-Programm 17 1.1.1 Analyse des Zinseszins-Programms 17 1.2 Compilieren und Ausführen eines Programms 24 1.3

Mehr

Arnold Willemer. Einstieg in C++ Galileo Press

Arnold Willemer. Einstieg in C++ Galileo Press Arnold Willemer Einstieg in C++ Galileo Press Vorwort 13 1.1 Programmieren 15 1.1.1 Start eines Programms 15 1.1.2 Eintippen, übersetzen, ausführen 16 1.1.3 Der Algorithmus 18 1.1.4 Die Sprache C++ 19

Mehr

C für Java-Programmierer

C für Java-Programmierer Carsten Vogt C für Java-Programmierer ISBN-10: 3-446-40797-9 ISBN-13: 978-3-446-40797-8 Inhaltsverzeichnis Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-40797-8 sowie im

Mehr

DIN EN ISO 9001 : 2015 UMSETZEN. Pocket Power ANNI KOUBEK. Herausgegeben von Gerd F. Kamiske

DIN EN ISO 9001 : 2015 UMSETZEN. Pocket Power ANNI KOUBEK. Herausgegeben von Gerd F. Kamiske ANNI KOUBEK Herausgegeben von Gerd F. Kamiske DIN EN ISO 9001 : 2015 UMSETZEN Pocket Power Pocket Power Anni Koubek DIN EN ISO 9001:2015 umsetzen QM-System aufbauen und weiterentwickeln HANSER Die Wiedergabe

Mehr

Spritzgießwerkzeuge kompakt

Spritzgießwerkzeuge kompakt Harry Pruner Wolfgang Nesch Spritzgießwerkzeuge kompakt Ein Praxisbuch für Einsteiger Pruner, Nesch Spritzgießwerkzeuge kompakt Harry Pruner Wolfgang Nesch Spritzgießwerkzeuge kompakt Ein Praxisbuch für

Mehr

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15 Vorwort... 15 1 Einstieg in die Welt von C 17 1.1 Die Sprache C... 17 1.2 Die C-Standardbibliothek... 18 1.3 Die nötigen Werkzeuge für C... 21 1.4 Übersetzen mit der Entwicklungsumgebung... 23 1.5 Übersetzen

Mehr

Bleiben Sie auf dem Laufenden!

Bleiben Sie auf dem Laufenden! Badach/Hoffmann Technik der IP-Netze Bleiben Sie auf dem Laufenden! Unser Computerbuch-Newsletter informiert Sie monatlich über neue Bücher und Termine. Profitieren Sie auch von Gewinnspielen und exklusiven

Mehr

Eine praktische Einführung in die Programmierung mit der Programmiersprache C

Eine praktische Einführung in die Programmierung mit der Programmiersprache C Eine praktische Einführung in die Programmierung mit der Programmiersprache C www.c-howto.de C-HowTo www.c-howto.de Inhaltsverzeichnis 1 Einführung.. 10 1:1 Wozu Programmieren? 10 1.2 Was ist ein Programm?

Mehr

Ulla Kirch Peter Prinz C+ + Lernen und professionell anwenden. mitp

Ulla 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

Mehr

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke

Inhaltsverzeichnis 1 Der objektorientierte Ansatz 2 Elementare Objekte und Ausdrücke Inhaltsverzeichnis 1 Der objektorientierte Ansatz... 1 1.1 Ein einführendes Beispiel...2 1.1.1 Aktive Objekte...4 1.1.2 Klassifikation...4 1.1.3 Datenkapselung...6 1.2 OOP im Überblick...6 1.3 Programmaufbau...7

Mehr

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme?

Inhaltsverzeichnis. Kapitel i: Schnelleinstieg 13. Kapitel 2: Was sind Programme? 17. Kapitel 3: Wie erstellt man eigene Programme? Liebe Leserin, lieber Leser 10 Kapitel i: Schnelleinstieg 13 Kapitel 2: Was sind Programme? 17 Was ist ein Programm? 18 Sprechen Sie Computer? 18 Von der Idee zum Programm 19 Von Windows, Fenstern und

Mehr

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung

Berichte aus der Informatik. Dieter Pawelczak. Start in die C-Programmierung Berichte aus der Informatik Dieter Pawelczak Start in die C-Programmierung Shaker Verlag Aachen 2012 Inhaltsverzeichnis Inhaltsverzeichnis i 1 Einleitung 1 1.1 Umfeld und Aufbau des Buches 1 Die Programmiersprache

Mehr

Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen

Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen hans-bernhard WOYAND PYTHON FÜR INGENIEURE UND NATURWISSENSCHAFTLER Einführung in die Programmierung, mathematische Anwendungen und Visualisierungen Im Internet: Beispiele und Lösungen zu den Aufgaben

Mehr

Werner Achte rt DATA BECKER

Werner Achte rt DATA BECKER Werner Achte rt. DATA BECKER Inhaltsverzeichnis 1. Einführung 21 1.1 Entwurf von Anwendungssystemen 23 1.2 Entwicklung eines Programms 25 1.3 Objektorientierte Programmierung 29 1.4 Darstellung objektorientierter

Mehr

Einführung in die STL

Einfü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,

Mehr

Liste MI / Liste I Programmieren in C++

Liste MI / Liste I Programmieren in C++ Liste MI / Liste I Programmieren in C++ Fachhochschule Wiesbaden, FB Design Informatik Medien Studiengang Medieninformatik WS 2007/2008 Kapitel 1-4 1 Ziele Kennenlernen einer weiteren objektorientierten

Mehr

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent magnum C++ WALTER SAUMWEBER kompakt komplett kompetent Quickview... 5 Liebe Leserin, lieber Leser... 13 Teil 1 Grundlagen... 15 1 Was ist Programmieren?... 17 1.1 Was ist eigentlich ein Computerprogramm?...

Mehr

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14

Das erwartet dich in diesem Buch 8. Kapitel 1 Aufbruch ins Programmierabenteuer 14 Inhaltsverzeichnis Das erwartet dich in diesem Buch 8 Kapitel 1 Aufbruch ins Programmierabenteuer 14 Das Schlimmste vorab: die binäre Logik 15 So hoch entwickelt und doch so primitiv: der Prozessor 17

Mehr

Grundkurs Software- Entwicklung mit C++

Grundkurs Software- Entwicklung mit C++ Dietrich May Grundkurs Software- Entwicklung mit C++ Praxisorientierte Einführung mit Beispielen und Aufgaben- Exzellente Didaktik und Übersicht Mit 30 Abbildungen 2., überarbeitete und erweiterte Auflage

Mehr

Die С ++-Programmiersprache

Die С ++-Programmiersprache Bjarne Stroustrup Die С ++-Programmiersprache 3., aktualisierte und erweiterte Auflage Deutsche Übersetzung von Nicolai Josuttis und Achim Lörke raddison-wesley An imprint of Addison Wesley Longman, Inc.

Mehr

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4

TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA GRUNDLAGEN DER PROGRAMMIERUNG... 4 Inhaltsverzeichnis TEIL I: OBJEKTORIENTIERUNG UND GRUNDKURS JAVA... 1 1 GRUNDLAGEN DER PROGRAMMIERUNG... 4 1.1 Das erste Java-Programm... 4 1.2 Programme und ihre Abläufe... 6 1.3 Entwurf mit Nassi-Shneiderman-Diagrammen...

Mehr

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer

Ralf Kirsch Uwe Schmitt. Programmieren inc. Eine mathematikorientierte Einführung. Mit 24 Abbildungen und 13 Tabellen. Springer Ralf Kirsch Uwe Schmitt Programmieren inc Eine mathematikorientierte Einführung Mit 24 Abbildungen und 13 Tabellen Springer Inhaltsverzeichnis Eine Einleitung in Frage und Antwort V 1 Vorbereitungen 1

Mehr

C Seminar. Dr.sc.nat. Michael J.M. Wagner, New Elements. Revision 89

C Seminar. Dr.sc.nat. Michael J.M. Wagner, New Elements. Revision 89 C++11 - Seminar Dr.sc.nat. Michael J.M. Wagner, New Elements Revision 89 Inhaltsverzeichnis 1 Tour de C++ 11 1 1.1 Standards und Ziele................................ 1 1.2 Kernsprache....................................

Mehr

Programmierung in C/C++

Programmierung in C/C++ Programmierung in C/C++ Mit einer grundlegenden Einführung in die Objektorientierung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller Mit 134 Bildern Kontakt & Studium Band 682 Herausgeber: Prof. Dr. Birgit Baum

Mehr

C++-Entwicklung mit Linux

C++-Entwicklung mit Linux C++-Entwicklung mit Linux Eine Einführung in die Sprache und die wichtigsten Werkzeuge von GCC und XEmacs bis Eclipse Thomas Wieland [Druckvorlage vom 10. August 2004] xiii Inhaltsverzeichnis 1 Programmieren

Mehr

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren

Sprechen Sie Java? Hanspeter Mössenböck. Tm\ dpunkt.verlag. Eine Einführung in das systematische Programmieren Hanspeter Mössenböck Sprechen Sie Java? Eine Einführung in das systematische Programmieren 3., überarbeitete und erweiterte Auflage Tm\ dpunkt.verlag 1 Grundlagen 1 1.1 Daten und Befehle 2 1.2 Algorithmen

Mehr

Objektorientiertes Programmieren

Objektorientiertes Programmieren JL Ute Claussen Objektorientiertes Programmieren Mit Beispielen und Übungen in C++ Zweite, überarbeitete und erweiterte Auflage Mit 24 Abbildungen Springer Inhaltsverzeichnis 1 Einleitung 1 1.1 Was ist

Mehr

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2

Inhaltsverzeichnis. Kurseinheit 1. Kurseinheit 2 iii Inhaltsverzeichnis Kurseinheit 1 1 Von der Aufgabenstellung zum Programm... 1 1.1 Motivation... 1 1.2 Softwareentwicklung... 2 1.3 EXKURS: Unified Modeling Language (UML)... 4 2 Anforderungsanalyse...

Mehr

C++ Teil 12. Sven Groß. 18. Jan Sven Groß (IGPM, RWTH Aachen) C++ Teil Jan / 11

C++ 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

Mehr

Objektorientierte Programmierung in Java

Objektorientierte Programmierung in Java Objektorientierte Programmierung in Java 1. Auflage Taschenbuch. Paperback ISBN 978 3 8266 7414 3 Weitere Fachgebiete > EDV, Informatik > Programmiersprachen: Methoden > Prozedurorientierte Programmierung

Mehr

Repetitorium Informatik (Java)

Repetitorium Informatik (Java) Repetitorium Informatik (Java) Tag 6 Lehrstuhl für Informatik 2 (Programmiersysteme) Übersicht 1 Klassen und Objekte Objektorientierung Begrifflichkeiten Deklaration von Klassen Instanzmethoden/-variablen

Mehr

Effektiv Programmieren in С und C++

Effektiv Programmieren in С und C++ Dietmar Herrmann Effektiv Programmieren in С und C++ Eine Einführung mit Beispielen aus Mathematik, Naturwissenschaft und Technik 3., vollständig überarbeitete und erweiterte Auflage 3 vieweg flffm \;i

Mehr

Praxisbuch Objektorientierung

Praxisbuch Objektorientierung Bernhard Lahres, Gregor Rayman Praxisbuch Objektorientierung Von den Grundlagen zur Umsetzung Galileo Press 1.1 Was ist Objektorientierung? 11 1.2 Hallo liebe Zielgruppe 12 1.3 Was bietet dieses Buch (und

Mehr

Programmierkurs C++ Templates & STL (1/2)

Programmierkurs 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

Mehr

Gliederung der Folien

Gliederung der Folien 1 Gliederung der Folien 1. Einführung 1.1. Gliederung 1.2. Literatur 1.3. Einstieg in Java 1.3.1. Geschichte von Java 1.3.2. Hello World 1.3.3. Übersetzen eines Java-Programms 1.4. Die Entwicklungsumgebung

Mehr

Fit für die Prüfung Elektrotechnik Effektives Lernen mit Beispielen und ausführlichen Lösungen

Fit für die Prüfung Elektrotechnik Effektives Lernen mit Beispielen und ausführlichen Lösungen Jan Luiken ter Haseborg Christian Schuster Manfred Kasper Fit für die Prüfung Elektrotechnik Effektives Lernen mit Beispielen und ausführlichen Lösungen ter Haseborg, Schuster, Kasper Fit für die Prüfung

Mehr

Das Einsteigerseminar Objektorientierte Programmierung in Java

Das Einsteigerseminar Objektorientierte Programmierung in Java Alexander Niemann Das Einsteigerseminar Objektorientierte Programmierung in Java -H-H Inhalt Vorwort 13 Einleitung 15 1 Java 21 1.1 Die Geschichte von Java 22 1.2 Das Konzept 24 Klassisch - Compiler und

Mehr

C++ Teil 6. Sven Groß. 27. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 14

C++ 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

Mehr

Programmieren in Lua

Programmieren in Lua Roberto lerusalimschy Programmieren in Lua 3. Auflage Open Source Press Inhaltsverzeichnis Vorwort 13 I Die Sprache 21 1 Einführung 23 1.1 Chunks 24 1.2 Einige lexikalische Konventionen 26 1.3 Globale

Mehr

Objektorientierte Programmierung (OOP)

Objektorientierte Programmierung (OOP) orientierte Programmierung (OOP) 1. Motivation Die objektorientierte Sichtweise der Welt Als Motivation für die OOP sieht man sich am besten die reale Welt an: Die reale Welt besteht aus "en", z. B.: Gegenstände,

Mehr

C++ Teil 5. Sven Groß. 13. Mai Sven Groß (IGPM, RWTH Aachen) C++ Teil Mai / 18

C++ 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

Mehr

Studienbücher Informatik. Herausgegeben von W. Hower, Albstadt-Ebingen, Deutschland

Studienbücher Informatik. Herausgegeben von W. Hower, Albstadt-Ebingen, Deutschland Studienbücher Informatik Herausgegeben von W. Hower, Albstadt-Ebingen, Deutschland Die Reihe Studienbücher Informatik wird herausgegeben von Walter Hower. Dieter Duschl Softwareentwicklung mit C++ Einführung

Mehr

1 Einige Grundbegriffe Einführung in die Programmierung Ausgewählte Sprachelemente von C Arithmetik...

1 Einige Grundbegriffe Einführung in die Programmierung Ausgewählte Sprachelemente von C Arithmetik... Auf einen Blick Auf einen Blick 1 Einige Grundbegriffe... 21 2 Einführung in die Programmierung... 35 3 Ausgewählte Sprachelemente von C... 45 4 Arithmetik... 83 5 Aussagenlogik... 107 6 Elementare Datentypen

Mehr

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona

Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona DAS EINSTEIGERSEMINAR Datenbankprogrammierung mit MySQL 5 und PHP 5 von Helma Spona Neuausgabe Datenbankprogrammierung mit MySQL 5 und PHP 5 Spona schnell und portofrei erhältlich bei beck-shop.de DIE

Mehr

back() 341, 342 begin() 317, 337 binary_search() 326 bool 49 boolalpha 312 case 73 cerr 80 char 39

back() 341, 342 begin() 317, 337 binary_search() 326 bool 49 boolalpha 312 case 73 cerr 80 char 39 Stichwortverzeichnis A Abstrakte Klasse 227, 379 Abstrakter Datentyp 379 accumulate() 333 Aggregat 114, 216, 380 Algorithmen (C++-Bibliothek) 322 Algorithmus (Definition) 16 Alias-Deklaration 123 Allgemeiner

Mehr

С als erste Programmiersprache

С als erste Programmiersprache Joachim Goll Ulrich Bröckl Manfred Dausmann С als erste Programmiersprache Vom Einsteiger zum Profi 4., überarbeitete und erweiterte Auflage Teubner B.G.Teubner Stuttgart Leipzig Wiesbaden 1 2 3 4 5 GRUNDBEGRIFFE

Mehr

Erste Schritte der Programmierung in C

Erste Schritte der Programmierung in C Erste Schritte der Programmierung in C C versus C++ Anatomie von C-Programmen für AVR- Mikrocontroller Unterschiede zwischen C++ und C 1 Grundlegende Unterschiede File-Extensions (Header und Quellcode)

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung von Dietmar Ratz, Jens Scheffler, Detlef Seese 2. Auflage Hanser München 2004 Verlag C.H. Beck im Internet:

Mehr

Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache

Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache Manfred Dausmann Ulrich BröckI Dominik Schoop Joachim Goll C als erste Programmiersprache Vom Einsteiger zum Fortgeschrittenen 7., überarbeitete und erweiterte Auflage Mit 35 Abbildungen STUDIUM VIEWEG+

Mehr

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs funktionale Programmierung mit Scala ISBN:

Inhaltsverzeichnis. Lothar Piepmeyer. Grundkurs funktionale Programmierung mit Scala ISBN: Lothar Piepmeyer Grundkurs funktionale Programmierung mit Scala ISBN: 978-3-446-42092-2 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42092-2 sowie im Buchhandel. Carl Hanser

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java 2008 AGI-Information Management Consultants May be used for personal purporses only or by libraries associated to dandelon.com network. Dietmar Ratz Jens Scheffler Detlef Seese Grundkurs Programmieren

Mehr

Richtig einsteigen: Access 2007 VBA-Programmierung

Richtig einsteigen: Access 2007 VBA-Programmierung Lorenz Hölscher Richtig einsteigen: Access 2007 VBA-Programmierung Miaosott Teill Erste Schritte 1 Einleitung 9 1.1 Die Themenschwerpunkte dieses Buches 9 Visual Basic for Applications 9 Die Beispiel-Datenbank

Mehr

Programmieren in C++ Überladen von Methoden und Operatoren

Programmieren in C++ Überladen von Methoden und Operatoren Programmieren in C++ Überladen von Methoden und Operatoren Inhalt Überladen von Methoden Überladen von Operatoren Implizite und explizite Konvertierungsoperatoren 7-2 Überladen von Methoden Signatur einer

Mehr

Grundkurs Programmieren in Java

Grundkurs Programmieren in Java Grundkurs Programmieren in Java Jens Scheffler, Dietmar Ratz, Jan Wiesenberger, Detlef Seese Band 1: Der Einstieg in Programmierung und Objektorientierung ISBN 3-446-40493-7 Inhaltsverzeichnis Weitere

Mehr

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung

Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung Dietmar Ratz, Jens Scheffler, Detlef Seese, Jan Wiesenberger Grundkurs Programmieren in Java Band 1: Der Einstieg in Programmierung und Objektorientierung ISBN-10: 3-446-41268-9 ISBN-13: 978-3-446-41268-2

Mehr

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes

Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes Technik Jan Kröger Erstellung eines Prototyps zum sicheren und gesteuerten Zugriff auf Dateien und Dokumente auf Basis von Lotus Domino und Notes Diplomarbeit Bibliografische Information der Deutschen

Mehr

Überblick. 5. Objekt und Klasse, Elementfunktionen

Überblick. 5. Objekt und Klasse, Elementfunktionen Überblick 1. Einführung C++ / Entwicklung/ Sprachfamilie 2. Nicht objektorientierte Erweiterungen von C 2.1 Das Ein-/Ausgabekonzept von C++ 2.2 Referenzen in C++ 2.3 Heap-Allokatoren in C++ 3. Grundlagen

Mehr

Objektorientierte Programmierung mit C++ SS 2007

Objektorientierte 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

Mehr

Andreas Spillner / Ulrich Breymann, Lean Testing für C++-Programmierer, dpunkt.verlag, ISBN

Andreas Spillner / Ulrich Breymann, Lean Testing für C++-Programmierer, dpunkt.verlag, ISBN Andreas Spillner ist Professor für Informatik an der Hochschule Bremen. Er war über 10 Jahre Sprecher der Fachgruppe TAV»Test, Analyse und Verifikation von Software«der Gesellschaft für Informatik e.v.

Mehr

APPS FÜR ANDROID ENTWICKELN

APPS FÜR ANDROID ENTWICKELN jan TITTEL jochen BAUMANN ELL N H C S IEG T S N I E APPS FÜR ANDROID ENTWICKELN AM BEISPIEL EINER REALEN APP Tittel/Baumann Apps für Android entwickeln Bleiben Sie auf dem Laufenden! Der Hanser Computerbuch-Newsletter

Mehr

DAP2-Programmierpraktikum Einführung in C++ (Teil 2)

DAP2-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

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dynamische Datenobjekte Pointer/Zeiger, Verkettete Liste Eigene Typdefinitionen 1 Zeigeroperatoren & und * Ein Zeiger ist die Speicheradresse irgendeines Objektes. Eine

Mehr

STRATEGISCHES PROZESS - MANAGEMENT

STRATEGISCHES PROZESS - MANAGEMENT inge HANSCHKE rainer LORENZ STRATEGISCHES PROZESS - MANAGEMENT EINFACH UND EFFEKTIV EIN PRAKTISCHER LEITFADEN EXTRA: Mit kostenlosem E-Book Hanschke/Lorenz Strategisches Prozessmanagement einfach und effektiv

Mehr

C programmieren. Jürgen Wolf

C programmieren. Jürgen Wolf C programmieren Jürgen Wolf Vorwort 11 Kapitel 1: Schnelleinstieg 13 Was sollten Sie bereits können? 14 Was lernen Sie mit diesem Buch? 14 Was benötigen Sie noch? 14 Überblick zu den einzelnen Kapiteln

Mehr

Über den Autor 9 Widmung 10. Einführung 23

Über den Autor 9 Widmung 10. Einführung 23 Inhaltsverzeichnis Über den Autor 9 Widmung 10 Einführung 23 Über dieses Buch 23 Törichte Annahmen über den Leser 24 Wie dieses Buch organisiert ist 25 Teil I: Programmieren in C++ die ersten Schritte

Mehr

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH

Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH Wirtschaft Markus Hartmann Usability Analyse des Internetauftritts der Firma MAFI Transport-Systeme GmbH Diplomarbeit Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information

Mehr

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005

Manfred Schüttengruber. Objektorientierte Programmierung mit Visual Basic 2005 Manfred Schüttengruber Objektorientierte Programmierung mit Visual Basic 2005 Inhaltsverzeichnis Vorwort 11 i Das.NET-Konzept 15 I.I Kapitelüberblick 15 i.2 Das.NET Framework 15 1.3 IL-Code und Plattformunabhängigkeit

Mehr

Bibliografische Information der Deutschen Nationalbibliothek:

Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek: Bibliografische Information der Deutschen Nationalbibliothek: Die Deutsche Bibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;

Mehr