Modernes C++ programmieren

Dez 09, 2014

Errata (C++ Einführung)

Seite 50: #include, da fehlt das “l”.

Kapitel 14.1, Fehlerbehandlung mit Rückgabewerten

Im Buch steht in Listing 14.1, Seite 207:

Zeile 12:   int count = 0 // am EOF wird noch ein Wort gelesen
Zeile 18:   return count - 1;

wobei im Beispiellisting 28-codes.cpp aber steht

Zeile 12:   int count = -1 // am EOF wird noch ein Wort gelesen
Zeile 18:   return count;

Beides ist korrekt, nur anders formuliert.

S. 138, Listing 10.4

iota kommt aus dem Header numeric, nicht algorithm.

#include <array>
#include <algorithm>
#include <numeric>

S. 170, Prüfen des Erfolgs des Stream-Ins

! bindet stärker als >>. An dieser und anderen Stellen muss der boolsche Teilausdruck geklammert werden:

if(!(std::cin >> variable)).

S. 187, Listing 12.17, Kommentar bezieht sich auf falsche Variable

// raus aus innerer xy-Schleife

S. 188, falscher Bezug auf Source-Stelle

Hätten Sie bei cout << prod// Ziel von break ein break eingebaut, dann würde jedoch die x-Schleife verlassen und bei cout << "\n" fortgefahren.

S. 294, falscher Bezug auf Variable


Weil aber die arrSPAET -Definition nach der Verwendung steht,

S. 314, Listing 20.10, Parameter fehlt

Hier fehlt der Stream als Parameter (oder die globale Variable). Außerdem sind meine internen Prüfkommentare “//=” hineingerutscht (Auszeichnung des Listings als C++-Programm verkehrt).

//... Basis2 und Wert2 wie gehabt ...
void ausgabe(Basis2 x, ostream& os) {
    // Übergabe als Wert
    x.print(os);
}
int main() {
  Basis2 ba2{}; ausgabe(ba2, cout); // gibt 8 aus
  //= 8
  Wert2 we2 {}; ausgabe(we2, cout); // gibt auch 8 aus
  //= 8
}

S. 314, falsches Ergebnis

dann hätte ausgabe(we2) die ~~11~~[10]{.underline} ausgegeben