C++ mit Visual Studio 2019

Erscheinungstermin: ca. August 2020, Springer-Verlag, Umfang: ca. 967 Seiten

C++ hat sich in den letzten Jahren rasant entwickelt: Die Neuerungen von C++11, C++14, C++17 und C++20 haben viele Verbesserungen und neue Möglichkeiten gebracht. Vieles, was 2010 noch gut und empfehlenswert war, kann heute besser und sicherer gemacht werden.

Das merkt man als Buchautor und Trainer, der diese ganze Entwicklung begleitet hat, besonders deutlich: Vieles, was man früher einmal geschrieben hat, sollte man heute anders machen. Zwar würde es immer noch kompiliert werden. Aber es ist kein modernes C++ mehr, das dem aktuellen Stand der Technik entspricht und alle Vorteile nutzt.

Dieses Buch stellt C++ auf dem Stand von Visual Studio 2019 im Mai 2020 vor. Das ist nicht nur der Umfang von C++17, sondern auch schon ein Teil von C++20. Auch wenn Module, concepts, std::span und der dreifache Vergleichs­operator <=> noch nicht vollständig verfügbar sind, kann man die wichtigsten Vorteile schon jetzt zeigen. Wenn der Leser dieses Buch dann in einem oder zwei Jahren in der Hand oder am Bildschirm hat, sieht er schon, wie man sie einsetzen kann.

Dieses Buch entstand einerseits aus meinen Vorlesungen an der Dualen Hochschule Lörrach und andererseits aus zahlreichen Seminaren für Firmen, die sich an Software-Entwickler richten, die C++ professionell einsetzen. Dementsprechend richtet es sich einerseits an Studierende ohne Vorkenntnisse. Die Lernziele für diese Gruppe sind:

  • Modernes C++ auf dem Stand von 2020 zu lernen. C++ ist nach wie vor eine der am häufigsten eingesetzten Programmier­sprachen.
  • Programmieren zu lernen, d.h. Programme zu schreiben, die konkrete, vorgegebene Auf­gaben lösen. Das ist nur mit viel Übung möglich. Programmieren lernt man nur, indem man es tut. Deshalb enthält dieses Buch auch viele Übungsaufgaben. Es ist unerlässlich, zahlreiche Aufgaben selbständig zu lösen (das müssen nicht die aus diesem Buch sein).

Der Schwie­rigkeitsgrad der Aufgaben reicht von einfachen Wiederholungen des Textes bis zu kleinen Projektchen, die ein gewisses Maß an selbständiger Arbeit erfordern. Die Lösungen der Aufgaben findet man auf https://www.rkaiser.de.

  • Eine moderne Entwicklungsumgebung kennen- und einsetzen lernen. Visual Studio ist das in der Industrie wohl am häufigsten eingesetzte Werkzeug zur Software-Entwicklung.
  • Man hört immer wieder, dass C++ zu schwierig ist, um damit das Programmieren zu lernen. Dieses Buch soll ein in vielen Jahren erprobtes Gegen­argument zu dieser Meinung sein. Damit will ich die Komplexität von C++ nicht ab­streiten. Aber wer C++ kann, findet sich leicht mit C#, Java usw. zurecht. Der umgekehrte Weg ist meist schwieriger.

Dieses Buch richtet sich aber ebenso an professionelle Software-Entwickler mit einer jahre­langen C++-Praxis. Viele C++-Neuerungen machen elementare Sprachkonzepte einfacher und sicherer. Dazu kommen anspruchsvollere Neuerungen, die bessere und effizientere Lösun­gen ermög­lichen, die so vor einigen Jahren noch nicht möglich waren. Sowohl die einfachen als auch die anspruchsvolleren Möglichkeiten haben sich in der industriellen Praxis oft noch nicht herumgesprochen. Oft wird mit C++ noch wie vor 30 Jahren mit C program­miert. Das ist fehleranfällig, unnötig aufwendig und verschenkt Vorteile und Möglichkeiten.

  • Für professionelle Entwickler soll dieses Buch einen nahezu vollständigen Überblick über C++17 geben und die Sprachelemente so vorstellen, dass sie in der praktischen Arbeit eingesetzt werden können. Die Erfahrun­gen aus meinen Firmenseminaren geben mir die Hoffnung, dass die aller­meisten Themen abgedeckt sind, die im industriellen Einsatz notwendig sind.
  • Da ausschließlich Standard-C++ behandelt wird, ist dieses Buch nicht auf Visual Studio beschränkt. Praktisch alle Ausführungen gelten für jeden standardkonformen C++-Compiler (gcc, Intel, Embarcadero usw.).
  • Das moderne C++ bietet auch Programmierern von eingebetteten Anwendungen viele Vor­teile gegenüber dem in diesem Anwendungsbereich verbreiteten C. Mit dem moder­nen C++ gibt es noch weniger Gründe als vorher, solche Anwendungen in C zu schreiben.
  • Professionelle Entwickler sollen sich nicht an den Übungsaufgaben stören. Sie haben schon genügend Aufgaben gemacht, sonst wären sie keine Profis geworden. Und außer­dem bietet das Tagesgeschäft genügend Übungsaufgaben.

Ich habe nicht nur versucht, die Sprachelemente anschaulich zu be­schreiben, sondern auch Kriterien dafür anzugeben, wann und wie man sie sinnvoll einsetzen kann. Viele Empfehlun­gen aus style guides (z.B. der C++ Core Guidelines, siehe Abschnitt 2.13) sind in den Text eingearbeitet, ohne dass explizit darauf hingewiesen wird.

Dieses Buch erscheint in zwei weitgehend identischen Ausgaben:

  • In „C++ mit Visual Studio 2019“ werden reine Standard-C++-Programme geschrieben, d.h. ohne graphische Benutzeroberfläche. Alle Ein- und Aus­gaben erfolgen über die Konsole .
  • In der anderen Ausgabe C++ mit Visual Studio 2019 und Windows Forms Anwendungen werden Programme mit einer grafischen Benutzer­ober­fläche geschrieben. Alle Ein- und Ausgaben erfolgen über eine Windows-Benutzerober­fläche, meist eine TextBox.
  • Das ist im größten Teil bereits der einzige Unterschied zwischen den beiden Ausgaben.
  • Dazu kommen noch etwa 100 Seiten mit unterschiedlichen Inhalten, da diese in Visual Studio nur für den jeweiligen Anwendungstyp verfügbar sind. Die folgenden Themen sind nur in „C++ mit Visual Studio 2019“ enthalten: Multithreading (Kapitel 17), 15.10 parallele Algo­rithmen der Standardbibliothek, 2.13 C++ Core Guideline Checks, 11.2 polymorphe Memory Ressourcen (pmr,), Sprachele­men­te von C++20: 2.14 Module, 14.6 concepts, 4.2.4 std::span , 8.2.5 der dreifache Vergleichs­operator <=> usw.
  • Dagegen sind diese Themen nur in der Ausgabe für Windows Forms Anwendun­gen enthal­ten: „Steuerelemente für die Benutzeroberfläche“ und „C#/.NET Interoperabi­lität“ (Kapitel 2 und 19).

Die vorliegende Ausgabe ist eine umfassende Überarbeitung meiner Bücher über C++ mit Visual Studio 2017. Obwohl sich die beiden Jahreszahlen im Titel nur um 2 unter­scheiden, ist über die Hälfte komplett neu:

  • Große Teile, die heute nicht mehr aktuell sind, wurden entfernt. Vieles wurde auf den aktuellen Stand des modernen C++ gebracht. Wichtige Erweiterungen kamen dazu.
  • Eigentlich wollte ich den Umfang wieder auf ca. 800 Seiten begrenzen, um potenzielle Leser nicht schon allein durch das Gewicht und die Fülle des Stoffs abzuschrecken. Das ist mir aber trotz intensivster Bemühungen nicht gelungen.

Tübingen, im Juni 2020

                                                                                                                                                                  Richard Kaiser

Die folgenden Angaben sind teilweise noch vorläufig.

Links: zum Springer-Verlag, zu Amazon.com

Vorwort und Inhaltsverzeichnis als pdf

Rezensionen meines Buches über Visual C++ 2008 bei Amazon.

Auf der Buchseite des Springer Verlags finden unter “Vorschau” eine kleine Leseprobe mit den ersten beiden Seiten eines jeden Kapitels. Bitte stören Sie sich nicht daran, dass diese Seiten in schwarz-weiß sind. Im ebook sind die Abbildungen und die Programmtexte farbig.

Downloads: