C++ Buch “C++ mit Visual Studio 2019 und Windows Forms Anwendungen”

Das neue C++ Buch: Windows-Programme mit C++

Ein C++ Buch für Studierende und erfahrene Programmierer, die C++17 mit Visual Studio 2019 lernen und mit C++ Windows Programme mit einer grafischen Oberfläche schreiben wollen.

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

Buchcover C++ mit Visual Studio 2019 und Windows Forms Anwendungen

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

Vorwort zu “C++ mit Visual Studio 2019 und Windows Forms-Anwendungen”

Der Ausgangspunkt für dieses C++ Buch war der Wunsch nach einem C++-Lehrbuch, in dem von Anfang an Programme für eine grafische Benutzeroberfläche (Windows) entwickelt werden, und nicht wie meist üblich Konsolen-Anwendungen. Programme, in denen Ein- und Ausgaben über eine Konsole erfolgen, sind für viele Anfänger weltfremd wie steinzeitliche DOS-Programme und schrecken davon ab, sich überhaupt mit C++ beschäftigen zu wollen.

C++ Windows Forms Anwendungen sind ein idealer Rahmen für C++-Programme mit einer attraktiven Benutzeroberfläche: Der Zugriff auf Windows Steuer­elemente (Buttons, Text­Boxen usw.) ist einfach. Der Unterschied zu einem Standard C++ Programm ist meist nur, dass Ein- und Ausgaben über ein Windows-Steuer­element (meist eine TextBox) erfolgen

textBox1->AppendText("Hello World");

während in Standard-C++ die Konsole mit cout verwendet wird:

cout << "Hello world" << endl;

Mit dieser kurzen Anleitung zu Windows Forms Projekten mit Visual Studio 2019 können Sie sich einen ersten Eindruck verschaffen.

Aber nicht nur Studierende können von C++ mit einer grafischen Benutzeroberfläche profi­tieren. Mit Windows Forms Projekten können bestehende C oder C++-Programme ohne großen Aufwand mit einer grafischen Benutzeroberfläche ausgestattet werden. Und wer C oder C++ kann und keine neue Sprache für eine GUI lernen will, kann seine bestehenden Programme mit einfachen Mitteln schöner und leichter bedienbar machen.

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

Dieses C++ 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 C++ 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 C++ 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++ 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 C++ 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 fast 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. den C++ Core Guidelines) sind in den Text eingearbeitet, ohne dass explizit darauf hingewiesen wird.

Die beiden Ausgaben von C++ mit Visual Studio

Dieses C++ Buch erscheint in zwei weitgehend identischen Ausgaben:

  • In “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.
  • In der anderen Ausgabe „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 .
  • 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 zu C++ mit Visual Studio 2017

Die vorliegende Ausgabe ist eine umfassende Überarbeitung meines C++ Buchs ü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

Auf der Buchseite des Springer Verlags finden Sie 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 zu diesem C++ Buch: