C++ – Das umfassende Handbuch · PDF fileLeseprobe Mit dem neuen Standard hat sich eine...

download C++ – Das umfassende Handbuch · PDF fileLeseprobe Mit dem neuen Standard hat sich eine neue Art, in C++ zu program-mieren, etabliert. Torsten Wills Handbuch hilft Ihnen, mit Modern

If you can't read please download the document

Transcript of C++ – Das umfassende Handbuch · PDF fileLeseprobe Mit dem neuen Standard hat sich eine...

  • LeseprobeMit dem neuen Standard hat sich eine neue Art, in C++ zu program-mieren, etabliert. Torsten Wills Handbuch hilft Ihnen, mit Modern C++ nachhaltigen Code zu programmieren. berzeugen Sie sich und erfah-ren Sie in dieser Leseprobe, wie Sie Datentypen der Standardbibliothek nutzen und Objekte in Beziehung setzen. Ein Extrakapitel zeigt Ihnen Techniken, die Ihnen helfen, guten Code zu schreiben.

    Torsten T. Will

    C++ Das umfassende Handbuch

    1.067 Seiten, gebunden, Dezember 2017 39,90 Euro, ISBN 978-3-8362-4360-5

    www.rheinwerk-verlag.de/4250

    ber das Buch Hhere Datentypen Vererbung Guter Code

    Inhaltsverzeichnis

    Index

    Der Autor

    Leseprobe weiterempfehlen

    Wissen, wies geht.

    https://www.rheinwerk-verlag.de/c_4250/?utm_source=leseprobe&utm_medium=pdf&utm_campaign=leseprobe.rc.roi.product.4250&utm_content=roi&utm_term=4250mailto:?body=Leseproben-Empfehlung:%20%C2%BBC++%20%E2%80%93%20Das%20umfassende%20Handbuch%C2%AB%20von%20Rheinwerk,%20http://gxmedia.galileo-press.de/leseproben/4250/leseprobe_rheinwerk_c_plusplus_handbuch.pdf&subject=Leseprobe:%20%C2%BBC++%20%E2%80%93%20Das%20umfassende%20Handbuch%C2%AB

  • Torsten T. Will, Das Neue C++ Handbuch, ( 733ed14 2017-12-01 10:09:15 +0100 FERTIG ) Rheinwerk Verlag, ISBN: 978-3-8362-2677-6

    Layout: gp.cls, Version 3.5.023 (5th February, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 1. Dezember 2017, 13:53 Uhr Umlaut-Check: . Ligaturen: fl fiS. 29 Einstellungen: ohne Marginalien ohne Seitenrand mit Taben mit Kapitel-Intro normal breit Zoom auf 95.0%

    Aktuelle Quelldatei: wikitex/02DiesesBuch.tex , Aktueller Job: 2016-cxx_handbuch-eb

    1

    Kapitel 1

    Das C++-Handbuch

    Mit diesem Buch auf Ihrem Schreibtisch (denn fr Ihre Hnde ist es wohl zu schwer) hof-fe ich, Ihnen ein Werk zu liefern, das fr Sie die Brcke zwischen Lehrbuch und Refe-renz darstellt. Ich mchte Ihnen umfassend den Weg zum Programmieren mit C++ eb-nen, bis zu dem Punkt, an dem Sie wissen, wo Sie weiter nachschlagen knnen. Das ist vielleicht ein etwas seltsames Ansinnen, aber ich gehe hier bewusst zwei Kompromis-se ein: Erstens hoffe ich, dass Sie schon ein wenig ber Programmieren im Allgemeinen wissen und vielleicht schon erste Erfahrungen mit der Denkweise des Computers ge-sammelt haben. C++ selbst mssen Sie noch nicht unbedingt kennen, hier setzt dieses Buch auf. Zweitens gibt es zu jedem Sprachelement viele Details, Einsatzmglichkeiten und Interaktionen mit anderen Sprachelementen und von diesen sehr, sehr viele so-dass ich Ihnen zwar jedes Sprachelement beschreibe, aber nur bis zu einer gewissen Tiefe. Ich bette die Beschreibungen aber in einen Kontext ein, der Ihnen dabei hilft, ein Ver-stndnis zu entwickeln. Der reine Text des Sprachstandards von C++ inklusive der da-zugehrigen Standardbibliothek umfasst ber 1400 Seiten eng gedruckt und formal aufgeschrieben. Ein Werk wie das vorliegende Buch kann nicht anders, als Ihnen diese auf etwa 1000 Seiten verstndlich aber umfassend aufzubereiten, um dann durch eine umfassende Referenz an anderer Stelle ergnzt zu werden. Ich empfehle Referenzseiten (http://cppreference.com), Foren (http://stackoverflow.com) und Suche (http://google.com, http://bing.com) im Internet.

    Ich habe dieses Buch so aufgebaut, dass Sie zunchst das Werkzeug, mit dem Sie arbei-ten, besser kennenlernen werden. Sie bekommen also Antworten auf die Fragen, was ein Compiler bzw. eine Entwicklungsumgebung ist und wie Sie beides einrichten. Dann erhal-ten Sie einen schnellen berblick aus der Vogelperspektive, damit Ihnen die Lektre der spteren Kapitel leichter fllt.

    Dann wird es ausfhrlicher. Zunchst lernen Sie den Sprachkern kennen: Wie ist ein C++-Programm aufgebaut und was fr Elemente enthlt Ihr Code. Hier geht es also haupt-schlich um Syntax und Semantik, Sie sehen auerdem die eingebauten Datentypen und erfahren, wie der Computer mit ihnen rechnet.

    Es folgt eine umfassende Beschreibung der Standardbibliothek mit all ihren Werkzeugen, aber auch den Konzepten, die fr ihren effektiven Einsatz wichtig sind. Zu guter Letzt werden Sie einen Blick etwas ber den Tellerrand hinauswerfen und lernen ber weitere wichtige Bibliotheken, bekommen einige Tipps, wie Sie selbst eine Bibliothek entwerfen, und setzen am Schluss Qt (GUI-Toolkit zur plattformbergreifenden Programmierung) ein, um selbst ein Fensterprogramm zu schreiben.

    29

  • Torsten T. Will, Das Neue C++ Handbuch, ( 733ed14 2017-12-01 10:09:15 +0100 FERTIG ) Rheinwerk Verlag, ISBN: 978-3-8362-2677-6

    Layout: gp.cls, Version 3.5.023 (5th February, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 1. Dezember 2017, 13:53 Uhr Umlaut-Check: . Ligaturen: fl fiS. 30 Einstellungen: ohne Marginalien ohne Seitenrand mit Taben mit Kapitel-Intro normal breit Zoom auf 95.0%

    Aktuelle Quelldatei: wikitex/02DiesesBuch.tex , Aktueller Job: 2016-cxx_handbuch-eb

    1 Das C++-Handbuch

    1.1 Neu und Modern

    Bei all dem, lernen Sie durchgehend das neue C++ kennen. Fragen Sie jetzt warum neu?,

    dann antworte ich Ihnen: Weil beginnend mit C++11 fr C++ ein neues Zeitalter angefangen

    hat. C++ ist runderneuert worden, und wird es immer noch. Mit C++11 und C++14, und

    bald mit C++17 und den geplanten Erweiterungen, ist es in C++ mglich geworden, so zu

    programmieren, dass man verstndlichere, fehlerfreiere und nachhaltigere Programme

    schreibt wenn, ja wenn, man die Elemente richtig einsetzt.

    Im englischen Sprachraum wird fr die neue Art, in C++ zu programmieren, der Begriff

    modern verwendet. Im deutschen passt der nicht so ganz und hat eine leicht andere und

    daher nicht ganz passende Konnotation. Ich nehme daher lieber neu als Begriff, den Sie in

    diesem Buch daher an der einen oder anderen Stelle finden werden.

    Aber was macht diese neue oder moderne C++-Programmierung aus?

    E Sie knnen kompakter programmieren, weil der Compiler Ihnen viel Ballast abnehmen

    kann. Typinferenz mit auto und das bereichsbasierte for sind Beispiele dazu.

    E Sie schreiben sichereren Code, wenn Sie die vereinheitlichte Initialisierung mit {} be-

    vorzugen, weniger rohe Zeiger verwenden und die Container und Algorithmen der Stan-

    dardbibliothek verwenden und nicht zuletzt RAII verinnerlichen (siehe Kapitel 17, Gu-

    ter Code, 4. Dan: \newline Sicherheit, Qualitt und Nachhaltigkeit).

    E Werden Sie effizienter, durch Verschieben statt Kopieren, ohne etwas dafr tun zu ms-

    sen, auer Dinge wegzulassen (siehe Kapitel 17, Guter Code, 4. Dan: \newline Sicher-

    heit, Qualitt und Nachhaltigkeit).

    E Nutzen Sie neue C++-Konstrukte als Alternative zu weniger sicheren C-Mitteln.

    Wenn ich in diesem Buch Beispiele prsentiere, so sollen sie instruktiv und sinnvoll sein;

    dennoch einfach, kurz und in der Buchform bersichtlich. Ganz wichtig ist mir aber Pra-

    xisnhe. Und da kann es passieren, dass ich das eine oder andere Muster verwende, dass

    fr das Beispiel vielleicht nicht ntig gewesen wre. So wird Ihnen zum Beispiel das Pimpl-

    Pattern in Kapitel 11, Guter Code, 2. Dan: Modularisierung, begegnen. Im Unterschied zu

    Mustern wie RAII, die eher im neuen C++ wichtig sind, wird deren Erklrung meist knapp

    ausfallen, denn hier tendiert meine Abwgung zu kurz. Alle etablierten Patterns und

    Idiome gehren durchaus auch in ein Buch, im Fokus dieses Buchs sind jedoch die neuen.

    1.2 Dan-Kapitel

    An strategischen Stellen habe ich besondere Kapitel eingebaut, die sich weniger mit C++

    an sich beschftigen, Ihnen bei der Programmierung mit C++ aber dennoch helfen werden.

    Die Themen sind allgemeingltiger Natur der Softwareentwicklung wie Modularisierung,

    Testen und Ressourcenmanagement, aber konkret angewandt im Kontext von C++.

    30

    Torsten T. Will, Das Neue C++ Handbuch, ( 733ed14 2017-12-01 10:09:15 +0100 FERTIG ) Rheinwerk Verlag, ISBN: 978-3-8362-2677-6

    Layout: gp.cls, Version 3.5.023 (5th February, 2016), (C) Dr. Daniel Lauer, Bonn Mit TEX bearbeitet am 1. Dezember 2017, 13:53 Uhr Umlaut-Check: . Ligaturen: fl fiS. 31 Einstellungen: ohne Marginalien ohne Seitenrand mit Taben mit Kapitel-Intro normal breit Zoom auf 95.0%

    Aktuelle Quelldatei: wikitex/02DiesesBuch.tex , Aktueller Job: 2016-cxx_handbuch-eb

    1

    1.4 Verwendete Formatierungen

    Diese Dan-Kapitel stehen an Stellen im Buch, die themennah zu den umliegenden Ka-

    piteln gehren. Sie sind aber bewusst weit gefasst und bauen nicht nur auf den vorherge-

    henden Kapiteln auf. Sie haben mehr generellen Handbuchcharakter und laden dazu ein,

    sich auch spter noch praxisnahe Tipps abzuholen. Beim sequenziellen Durcharbeiten ist

    der eine oder andere Vorgriff akzeptiert und durchaus gewollt.

    Besonderes Augenmerk mchte auf Kapitel 30, Guter Code, 7. Dan: Richtlinien, lenken,

    das die meisten praktischen Tipps enthlt, wenn es auch sehr kompakt ist.

    1.3 Darstellung in diesem Buch

    In diesem Buch verwende ich durchgehend C++11 und C++14 als Standard, wenn ich Ihnen

    Dinge erklre. Eigentlich untersttzen alle neuen C++-Compiler den Groteil der Features.

    Wenn Sie in einer Umgebung arbeiten, die einen alten Compiler bedingt, mssen Sie auf

    einige ntzliche Dinge aus dem C++-Sprachkern verzichten und haben nur Zugriff auf

    einen sehr eingeschrnkten Teil der Standardbibliothek. Sehen Sie in der Dokumentation

    zu Ihrem alten Compiler nach, was Sie nutzen knnen, und schauen Sie bei boost nach, ob

    Ihre Standardbibliothek damit zu erweitern ist.

    Dinge, die Sie vielleicht erst in den neuesten C++-Versionen ab C++-17 finden werden, wer-

    de ich im Text erwhnen und im Quellcode besonders markieren.

    1.4 Verwendete Formatierungen

    Listings enthalten die folgen