C++ Einführung und professionelle Programmierung

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

Vorwort. 1

Gradle. Ein kompakter Einstieg in modernes Build-Management. Joachim Baumann. Joachim Baumann, Gradle, dpunkt.verlag, ISBN

Linux-Treiber entwickeln

EIDI 1 Einführung in die Informatik 1. PGdP Praktikum Grundlagen der Programmierung. Harald Räcke 2/217

Die Geschichte von C

Informatik 1. für Studiengänge Nachrichten-/Multimediatechnik und Mechatroniksysteme/Fahrzeugmechatronik. Wintersemester 2014/15

Grundkurs Programmieren in Visual C#

Software-Praktikum. Überblick und Zeitplan

C für Java-Programmierer

Statistik für Wirtschaftswissenschaftler

Programmierung 1 für Wirtschaftsinformatik Wintersemester 2015/16

Software-Praktikum. Ein praxisorientiertes Vorgehen zur Software-Erstellung

Grundlagen der Informatik

Warum JavaScript? Vorwort

Teil II: Konzepte imperativer Sprachen

Informatik 1. für Kommunikationstechniker, Mechatroniker. Teil 1 - Wintersemester 2012/13

Jane Hergert Bernd Marcus. Methoden und Verfahren der Berufseignungsdiagnostik. kultur- und sozialwissenschaften

C++ mit. Microsoft Visual C Richard Kaiser. Einführung in Standard-C++-, C++/CLI und die objektorientierte Windows.

Tel Vorstellung der eigenen Person

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Das Praktikum mit Seminar vertieft die in der Vorlesung erworbenen Fähigkeiten in theoretischer und praktischer Hinsicht:

Software Engineering

Programmieren und Algorithmen und Datenstrukturen 2

und -implementierungstechniken, Datenbanken & Java.

Probeklausur: Programmierung WS04/05

TECHNIK WISSENSCHAFTLICHEN ARBEITENS. Stefan Bauernschmidt Jens Stegmaier RECHERCHIEREN FORMGESTALTUNG PRÄSENTIEREN

Praktische Informatik I

Erweiterungscurriculum Grundlagen der Informatik

JavaScript kinderleicht!

Wie kann man die Korrektheit reaktiver Systeme gewährleisten?

Grundlagen der Informatik für Ingenieure I

ALGOL 68 im Aspekt einer modernen Programmiersprache???

Kontakt. Programmierkurs. Webseite. Ziel des Kurses

Programmieren I. Überblick. Institut für Angewandte Informatik. KIT Die Forschungsuniversität in der Helmholtz-Gemeinschaft

Programmieren mit Java

Vorlesung Programmieren

magnum C++ WALTER SAUMWEBER kompakt komplett kompetent

Vorwort. Walter Doberenz, Thomas Gewinnus. Visual Basic Kochbuch. ISBN (Buch): ISBN (E-Book):

0. Einführung. C und C++ (CPP)

Mit freundlichen Empfehlungen KARL STORZ

Informationsverarbeitung im Bauwesen

Vorlesung Programmierung

Vorwort zur ersten Auflage

Vorlesung Programmierung

Java ME. Anwendungsentwicklung für Handys, PDA und Co. von Ulrich Breymann, Heiko Mosemann. 1. Auflage

Vorlesung Informatik, Teil 1. Organisatorisches

Vorwort. Walter Doberenz, Thomas Gewinnus. Visual C# Grundlagen und Profiwissen ISBN:

Vorlesung Programmierung

Objektorientiertes Programmieren in C++

Technische Akademie Esslingen Ihr Partner für Weiterbildung seit 60 Jahren! Leitung Univ.-Prof. Hon.-Prof. Dr. Dieter Roller,

Elektrische und elektronische Messtechnik

Strafgesetzbuch: StGB

Basiswissen Software-Projektmanagement

Mediation im Klassenzimmer

Statistische Datenanalyse mit R

Werner Achte rt DATA BECKER

Das Fuji X100 Handbuch

Eberhard G. Fehlau. 30 Minuten. Mobbing

Grundkurs Programmieren in Java

Band II Heinz-Hermann Krüger Einführung in Theorien und Methoden der Erziehungswissenschaft

4. Objektorientierte Programmierung mit C++

Stickel Datenbankdesign

Übung zur Vorlesung Programmieren in C

Für Unternehmen ist die Wahl der passenden Rechtsform von zentraler Bedeutung.

11. Komponenten Grundlagen der Programmierung 1 (Java)

Grundkurs Software- Entwicklung mit C++

APPS für ios 10. professionell entwickeln. Apple Watch

grep kurz & gut John Bambenek and Agnieszka Klus

Dr. Michael Diechtierow

Einführung in die Programmierung

Willi Bohl Strömungsmaschinen 2 Berechnung und Konstruktion

Software-Entwicklung mit Delphi

Einführung in die Programmierung Wintersemester 2008/09

Grundlagen des Software Engineering

Sachinformation. TButton. TLabel. TMemo

PHP Kurs Online Kurs Analysten Programmierer Web PHP

Inhalt 6 Vorwort 10 1 Warum Perl? 12 2 Grundlagen Variablen Spezial-Variablen Kontext Wahrheitswert 18 3 Skalare 20 3.

Objektorientierte Programmierung in Java

ios-apps programmieren mit Swift

Michael Kolberg. einfach klipp & klar. Microsofft* Press

Methodisches Handeln in der Sozialen Arbeit

Vorwort zur vierten Auflage

Zur Erstellung des Projektberichts u. a. wissenschaftlicher Arbeiten

Objektorientierte Softwareentwicklung mit UML

Algorithmen und Datenstrukturen 06

Webbasierte Programmierung

PowerPoint Professionell Präsentieren. Inge Baumeister

Das Softwaresystem BASEMENT

Grundlagen von C# - 1

Grundlagen der Programmierung

Prüfungsklausur Entwicklungswerkzeuge und Software-Architektur Ergebnis der Klausur

Einführung in die Programmierung 1

Java-Programmierung mit NetBeans

Vorwort. Vorwort zur 1. Auflage

Einführung in die Programmierung. Organisatorisches. Skript zur Vorlesung Einführung in die Programmierung

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

Überblick. 5. Objekt und Klasse, Elementfunktionen

Amtsblatt des Ministeriums für Kultus, Jugend und Sport Baden-Württemberg

Entwicklung der Datenbanksysteme

Transkript:

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 sowie im Buchhandel

Vorwort zur 9. Auflage Mittlerweile ist der C++-Standard, der 1998 verabschiedet wurde und 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 Arbeitsname ist C++09, weil es die feste Absicht des Standardkomitees ist, den neuen C++-Standard spätestens 2009 zu verabschieden. Abgesehen von einigen wenigen Spracherweiterungen und -änderungen wurde im April 2006 beschlossen, den TR1 (Technical Report 1 [TR1]) mit der Ausnahme spezieller mathematischer Funktionen in den Standard aufzunehmen. Der TR1 besteht aus teilweise erheblichen Erweiterungen der C++-Standardbibliothek, die von manchen Compilern zum Teil schon realisiert werden. Allerdings ist der Gesamtumfang der Änderungen recht groß: Der Entwurf des neuen C++-Standards [ISO06] umfasst mehr als 1000 Seiten. Dies stellte den Anlass dar, das vorliegende Buch zu überarbeiten. Um den Charakter als einführendes Lehrbuch nicht zu verändern, musste eine sinnvolle Auswahl getroffen werden. Abschnitt A.4 auf Seite 680 zeigt die berücksichtigten Änderungen. Im laufenden Text wird auf sie mit einer Randmarkierung wie rechts hingewiesen. Fast jeder, der sich professionell oder studierend mit dem Thema Programmieren befasst, hat mittlerweile Zugriff auf einen schnellen Internet-Zugang, sei es am Arbeitsplatz, zu Hause oder in der Universität bzw. Hochschule. Die Aktualität einer CD-ROM lässt einige Zeit nach Erscheinen zu wünschen übrig. Daher haben sich Verlag und Autor entschlossen, auf die den vorhergehenden Auflagen noch beigelegte CD-ROM zu verzichten, und bitten um Verständnis für diese Maßnahme. Selbstverständlich ist das gesamte entsprechende Material im Internet auf der zum Buch gehörenden Web-Site verfügbar (http://www.oop-mit-cpp.de/). Um Anfängern den Einstieg in die Arbeit mit einer Entwicklungsumgebung zu erleichtern, wurden neue Abschnitte aufgenommen, die Schritt für Schritt durch die Konstruktion des ersten Programms mit Hilfe einer Open-Source 1 -Entwicklungsumgebung führen (Abschnitte 2.1.2 bis 2.1.4). Ich wünsche Ihnen viel Freude mit diesem Buch und viel Erfolg bei der Arbeit mit C++! Bremen, im Februar 2007 Ulrich Breymann C++09 1 Siehe Glossar Seite 747.

Vorwort Historisches C++ wurde etwa ab 1980 von Bjarne Stroustrup als objektorientierte Sprache entwickelt, damals»c mit Klassen«genannt; die Bezeichnung C++ existiert seit 1983. 1998 wurde C++ von der ISO (International Standards Organisation) standardisiert. C++ steht für eine evolutionäre Entwicklung von C. ++ ist der Inkrement- Operator in C, der den Wert einer Variablen um 1 erhöht. C ist eine der am weitesten verbreiteten Programmiersprachen. Wenn in technischen Bereichen Kenntnisse einer Programmiersprache gefragt sind, wird meistens Erfahrung in C++ als Nachfolgesprache von C gewünscht. C++ enthält den größten Teil von C als Untermenge. C++ unterstützt die rechnerinterne Darstellung von Objekten der realen Welt sowie die Wiederverwendbarkeit von Software. Viele große und kleine Firmen setzen C++ ein. 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 2 gedacht, die noch keine Programmiererfahrung haben, aber auch für Programmierer, die diese Programmiersprache kennen lernen möchten. Nach dem Einstieg in die objektorientierte Programmierung werden auch fortgeschrittene Konzepte von C++ beschrieben und an Beispielen demonstriert. Ziel des Buchs Das Buch soll eine Einführung in die C++-Programmiersprache und die Benutzung der C++-Standardbibliothek bieten. Das Ziel des Buchs ist es, C++ so darzustellen, dass möglichst bald ein Verständnis des objektorientierten Ansatzes entwickelt wird und rasch programmiert werden kann. Gleichzeitig soll die Darstellung möglichst kompakt sein, ohne dass die Lesbarkeit leidet. C++ wird als standardisierte Programmiersprache unabhängig von speziellen Produkten beschrieben. Es wird nicht von C ausgegangen und C-Kenntnisse werden nicht vorausgesetzt. Das Buch eignet sich auch als Begleitbuch zu einer Vorlesung oder zu Kursen. Fortgeschrittenen und professionellen Programmierern dient das Buch als Nachschlagewerk bei der täglichen Arbeit, was durch die Referenz zur C++-Standardbibliothek (Teil 2 des Buchs), ein detailliertes Inhaltsverzeichnis und ein umfangreiches Stichwortverzeichnis unterstützt wird. 2 Geschlechtsbezogene Formen meinen hier und im Folgenden stets Männer und Frauen.

22 Vorwort Aufbau Objekte in C++ werden als Bauelemente zur Konstruktion von Software verstanden. Die Objekte selbst bestehen aber auch aus Bauelementen, nämlich aus Daten und den Operationen, auch Funktionen oder Methoden genannt, die mit diesen Daten arbeiten. Daher werden erst diese Eemente behandelt, um danach Objekte als Bauelemente auf höherem Niveau konstruieren zu können. Aus didaktischen Gründen werden grundlegende Standardbausteine, nämlich die abstrakten Typen vector und string der C++-Standardbibliothek, früh eingeführt. Diese Elemente erlauben sinnvolle Beispiele einiger Komplexität, ohne dass Kenntnisse über ihre Implementierung oder über Zeiger vorliegen müssen. Durchaus wichtige, aber sehr niedrigsprachliche C-Konstruktionen wie Zeiger und C-Arrays können daher zugunsten von programmiersprachlichen Konzepten und der Objektorientierung nach hinten geschoben werden. Die Wirkungsweise vieler Klassen der C++-Standardbibliothek wird an vereinfachten Beispielen demonstriert. Daraus ergibt sich der grundlegende Aufbau des Buchs: Nach einer Einführung, die die Objektorientierung kurz streift, werden die Grundlagen beschrieben, nämlich Datenstrukturen und Funktionen, um dann gezielt auf die Objektorientierung einzugehen. Anschließend werden die besprochenen Themen erweitert und vertieft. Es wird versucht, den Stoff einschließlich der Beispiele hierarchisch möglichst so anzuordnen, dass Verweise auf noch nicht behandelte Teile nur selten nötig sind. Dadurch etwas»unelegant«geratene Beispiele werden später wieder aufgegriffen, um zu zeigen, wie man es besser machen kann. Tipp Web-Site zum Buch Wo finden Sie was? Programmieren lernt man nicht nur durch Lesen, sondern vor allem durch Programmieren, also durch eigenes Tun! Es wird Ihnen daher ans Herz gelegt, die Beispiele zu bearbeiten und zu verstehen sowie selbst Beispiele zu programmieren. Dabei wird häufig das Problem auftauchen, etwas nachschlagen zu müssen. Es gibt die folgenden Hilfen: Erklärungen zu Begriffen aus der objektorientierten Programmierung sind zusätzlich im Glossar (Seite 743) aufgeführt. Es gibt ein recht umfangreiches Stichwortverzeichnis (ab Seite 751) und ein sehr detailliertes Inhaltsverzeichnis. Die Referenz zur C++-Standardbibliothek (Teil 2 des Buchs) ist zusätzlich als elektronischer Hypertext von der Internet-Seite zum Buch vorhanden., sowie Links zu weiterer Dokumentation. Weiteres Material, Hinweise und nützliche Links sind auf der Web-Site zu diesem Buch http://www.oop-mit-cpp.de/ zu finden. Der Name der Web-Adresse steht für»objektorientierte Programmierung mit C++«.

Vorwort 23 Anregungen und Kritik sind erwünscht. Wenn Sie Fehler mitteilen oder Anregungen und Kritik äußern möchten, können Sie den Autor über den Verlag oder direkt über E-Mail erreichen (breymann@hs-bremen.de). Zu guter Letzt An einem Lehrbuch sind immer mehrere beteiligt: Vom Autor werden viele Elemente zusammengetragen, variiert und verbunden, um ein Thema geschlossen darstellen zu können. Die Mitarbeit im DIN-Arbeitskreis zur Standardisierung von C++ trug wie die im Text und im Literaturverzeichnis genannten Quellen dazu bei. Den Autoren sei an dieser Stelle herzlich gedankt, ebenso den Menschen, die diese und die vorhergehenden Auflagen des Buchs durch Hinweise und Anregungen verbessern halfen. Insbesondere danke ich Prof. Dr. Ulrich Eisenecker von der Universität Leipzig, Herrn Johannes Knaupp von der Berufsakademie Stuttgart, meinem Kollegen Prof. Dr. Jürgen Lübcke von der Hochschule Bremen, Prof. Dr. Bodo Bartning von der FHO Emden, sowie Herrn Dr. Ansgar Steinkamp von der Universität Dortmund für sachkundige Kritik und Anregungen. Frau Margarete Metzger und Frau Irene Weilhart vom Hanser Verlag danke ich für die gute Zusammenarbeit. Ulrich Breymann