Buch „C++ mit Visual Studio 2019“

Ein C++ Buch für Microsoft Visual Studio 2019

Ein C++ Buch für Studierende und erfahrene Programmierer, die C++17 mit Visual Studio 2019 lernen wollen.

Für die Übungen kann das kostenlose Visual Studio Communitiy verwendet werden.

Buchcover C++ mit Visual Studio 2019

Erscheinungstermin: Oktober 2020, Springer-Verlag, Umfang: 967 Seiten

Vorwort zum C++ Buch „C++ mit Visual Studio 2019“

Ein C++ Buch für Studierende und erfahrene Programmierer, die C++ lernen wollen. Dabei wird C++17 auf dem Stand von Microsoft Visual Studio 2019 umfassend vorstellt.

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

Die beiden Ausgaben von C++ mit Visual Studio

Das C++ Buch mit Visual Studio 2019 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).

Unterschiede zum Buch „C++ mit Visual Studio 2017“

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

Downloads zu diesem C++ Buch: