S. 53 Listing ganz unten: Es muss cin >> a;
heißen.
S. 71 Abschnitt if constexpr
: Ersetze den Nebensatz
"wenn wahrheitswert
schon zur Compilationszeit bekannt ist" durch
"wenn wahrheitswert
wahr ist. wahrheitswert
muss
schon zur Compilationszeit bekannt sein"
S. 76 Mitte: n
darf natürlich nicht const
oder constexpr
sein!
S. 85, Abbildung 1.14: Nach class
fehlt der (optionale) Typname,
unter dem die Aufzählung danach angesprochen werden kann (vgl. Abb. 1.15 auf
S. 88).
S. 86, nach 2/3 der Seite. Richtig ist:
Wochentag::montag = morgen;
// Fehler (montag
ist Konstante)
(Wochentag::
fehlt am Anfang der Zeile)
S. 165, Mitte. In der Zeile "Das Listing 2.54..." das Wort hello
durch grussmodul
ersetzen.
S. 184, Übung 3.1: neuer Name
muss zusammengeschrieben werden.
S. 190-191, Listing 3.27: 1. std::endl
ist überflüssig, weil
cerr
eine ungepufferte Ausgabe bewirkt.
2. Die Anweisung
radius = r;
muss nach der if
-Anweisung stehen!
S. 192 unten, Anmerkung zu Zeile 22, letzter Satz: Statt temp
muss es
kreis
heißen.
S. 329, Listing 6.27: Streichen Sie die Implementierung der Funktion
flaeche()
, damit das Listing dem Text auf S. 328 entspricht.
Die Funktionsdefinition bewirkt, dass die Klasse nicht mehr abstrakt ist,
wie behauptet.
S. 330, 1. Zeile: Ersetze string_view
durch string
.
S. 332 Mitte. Den ersten Satz ersetzen durch: "Auf welches Subobjekt
soll der Zeiger zeigerAufGrafischeObjekte[2]
in Listing 6.30 verweisen?"
S. 333, Listing 6.33: Der Parameter für string_view
muss
einen anderen Namen haben, etwa beschriftung
, der dann auch bei
der Initialisierung von BeschriftetesObjekt
verwendet wird. In den
downloadbaren Beispielen ist es korrekt.
S. 379, Abbildung 8.4: const
muss wie explicit
optional sein. In der Praxis wird ein Typumwandlungsoperator jedoch immer
const
sein.
S. 441 oben, Listing 9.19: Die catch-Klausel muss lauten:
catch (const UngueltigesDatumException& e) {
cerr << e.what() << " Abbruch!" << '\n';
}
Das gilt auch für die Datei cppbuch/k9/datum/main.cpp
S. 578: Zeile 29 im Listing streichen.
S. 702: Listing 23.1: Bitte fügen Sie vor der
return
-Anweisung die folgenden Zeilen ein:
if(start < s.size()) { // ggf. verbleibenden Rest anhängen
ergebnis.emplace_back(s.substr(start, s.size()));
}
S. 852, 2. Absatz: Mitte. Den ersten Satz "Die äußeren ..." streichen. C++11 erforderte zwei Klammerebenen, seit C++14 genügt eine.
S. 960, Lösung zu 3.2: Die in der Aufgabe genannten Voraussetzungen wurden nicht eingehalten.
Die erste Funktion muss lauten:
Rational add(long a, Rational b) {
Rational summand(a, 1);
b.add(summand);
return b;
}
Auf Seite 961 oben entsprechend
Rational add(long a, Rational b) {
b.add(Rational(a, 1));
return b;
}
S. 963, Lösung zu 6.3: Ersetze diePersonen[0]
durch
diePersonen[0].get()