Inhaltsverzeichnis[Anzeigen]

C++11 für Programmierer

C++11 für Programmierer

Beschreibung:

Dieser Leitfaden richtet sich an C++-Programmierer, die sich mit dem C++11-Standard vertraut machen möchten. Er zeigt, welche Neuerungen und Erweiterungen der Standard mit sich bringt, wie die neuen Features effizient eingesetzt werden -- und warum C++11 das bessere C++ ist. Das Buch bietet zunächst einen Überblick über die C++11-Features und zeigt dann im Detail, wie Sie die Neuerungen in Ihren Programmen einsetzen können.

Behandelt werden die Kernsprache, die Multithreading-Funktionalität sowie die Verbesserungen der Standardbibliothek. Der Autor verfolgt dabei einen praxisnahen Ansatz: Zahlreiche lauffähige Beispielprogramme, die Sie herunterladen können, sollen Sie zum Ausführen und auch zum Modifizieren des Codes ermutigen. Übungsaufgaben helfen Ihnen darüber hinaus, die Theorie optimal mit der Praxis zu verbinden, damit Sie C++11 in Zukunft erfolgreich anwenden können.

About:

  • Gebundene Ausgabe: 535 Seiten
  • Verlag: O'Reilly; Auflage: 1 (20. Dezember 2013)
  • Sprache: Deutsch
  • ISBN-10: 3955613917
  • ISBN-13: 978-3-95561-391-4

Weiterführende Informationen:

Die gibt es natürlich direkt beim Verlag. Diese umfasst

  • das Inhaltsverzeichnis
  • einen 40-seitigen Buchauszug
  • alle Beispiele
  • die Lösungen der Übungsaufgaben

Errata:

  • Seite 16 (Oliver Wrangler)

Zeile 41 in Beispiel 3-6:  s/[](const std::string& s{std::cout << s << ",";})/[](const std::string& s){std::cout << s << ",";})/

  • Seite 22

       Zeile 12 in Beispiel 3_11 s/std::cout << "hour= " << hour << std::endl;/std::cout << "hour= " << myHour << std::endl;/

  • Seite 41 (Martin Sander)

s/char16_t/char16_6/

  • Seite 73 (Martin Sander)

int C::* in Punkt 1.1 ist ein Zeiger auf ein int Mitglied der Klasse

  • Seite 86 (Martin Sander)

Referenz auf Zeile 19 statt 18

  • Seite 100 (Sascha Ochsenknecht)
  • Aufgabe 6-3: compRangeForEach.cpp
#include <algorithm>
#include <iostream>
#include <vector>

static const int SIZE = 10;

int main(){

  std::cout << std::endl;

  std::vector<int> myListRange;
  for (auto i= 0; i < SIZE; ++i) myListRange.push_back(0);

  int inc= 1;
  for (auto& i: myListRange) i= inc++;
  std::vector<int> myListForEach= myListRange;

  // Range based for loop
  for (auto& i: myListRange) i= (i*i);

  for (int i: myListRange) std::cout << i << " ";
  std::cout << std::endl;

  // std::for_each
  std::for_each( myListForEach.begin(), myListForEach.end(),[](int& i){i = i*i;});

  for (int i: myListForEach) std::cout << i << " ";
  std::cout << std::endl;

}
  • Seite 101 (Marcel Wid)

Beispiel 6-4: auto.cpp

#include <vector>

int func(int){ return 2011;}

int main(){

  auto i= 5;
  auto& intRef=i; // int&
  auto* intPoint= &i; // int*
  const auto constInt= i; // const int
  volatile auto volInt=i; // volatile int
  static auto staticInt= 10; // int

  const std::vector<int> myVec;
  auto vec = myVec; // std::vector<int>
  auto& vecRef = vec; // std::vector<int>&

  int myData[10];
  auto v1 = myData; // int*
  auto& v2 = myData; // int (&)[10]

  auto myFunc= func; // (int)(*)(int)
  auto& myFuncRef= func; // (int)(&)(int)

}

 

  • Seite104/105 (Marcel Wid)

Beispiel 6-7: decltype.cpp

#include <vector>

int func(int){ return 1; }

int main(){

  auto i= 5; // int
  decltype(i) iD= i; // int

  auto& intRef=i; // int&
  decltype(intRef) intRefD= intRef; // int&

  auto* intPoint= &i; // int*
  decltype(intPoint) intPointD= intPoint; // int*

  const auto constInt= i; // const int
  decltype(constInt) constIntD= constInt; // const int

  volatile auto volInt=i; // volatile int
  decltype(volInt) volIntD= volInt; // volatile int

  static auto staticInt= 10; // int
  decltype(staticInt) staticIntD= staticInt; // int

  const std::vector<int> myVec;

  auto vec = myVec; // std::vector<int>
  decltype(vec) vecD= vec; // std::vector<int>

  auto& vecRef = vec; // std::vector<int>&
  decltype(vecRef) vecRefD= vecRef; // std::vector<int>&

  int myData[10];

  auto v1 = myData; // int*
  decltype(v1) v1D= v1; // int*

  auto& v2 = myData; // int (&)[10]
  decltype(v2) v2D= v2; // int (&)[10]

  auto myFunc= func; // (int)(*)(int)
  decltype(myFunc) myFuncD= myFunc; // (int)(*)(int)

  auto& myFuncRef= func; // (int)(&)(int)
  decltype(myFuncRef) myFuncRefD= myFuncRef; // (int)(&)(int)

}

  • Seite 118 (Matthias Ende)

Beispiel 6-18: s/z = x+;y/z = x + y;/

  • Seite 123 (Martin Sander)

Aufgabe 6-13: s/Bei der Initialisierung mit den eckigen Klammern/Bei der Initialisierung mit geschweiften Klammern/

  • Seite 217 (Martin Sander)

Aufgabe 10-13: Listing 4.19 sollte Listing 10.19 und Listing 2.12 sollte Listing 8.12 heißen

  • Seite 137 (Marcel Wid)

Nicht triviale Methoden oder Operatoren müssen nicht mehr außerhalb der Klasse definiert werden. Diese Einschränkung gilt nicht mehr.

  • Seite 179 (Matthias Ende)

Im Fließtext: s/Das Klassen-Template calc/Das Klassen-Template sum/

  • Seite 199 (Matthias Ende)

In Codezeile 37: s/"sizeof(mSC)="/"sizeof(mSD)="/

  • Seite 237 (Dr. Chris Bielow)

       Um undefined behaviour zu erhalten, muss in der Funktion runThread t.detach() anstelle von t.join() verwendet werden.

  • Seite 241 (Martin Sander)

s/get(i)/get_id()/

  • Seite 262 (Martin Sander)

Zeile 18 und 19 verrutscht

  • Seite 265 (Martin Sander)

Kopier-Konstruktor im Beispiel 15-16 (Zeile 17) irrtümlich auskommentiert

  • Seite 318 (Martin Sander)

smatch.max_size() bezeichnet die maximale Anzahl an Treffern, die ein match_result besitzen kann

  • Seite 346 ( Matthias Ende)

       In der Beschreibung zur Tabelle 19.11 fehlt der value: s/std::is_floating_point<T>/std::is_floating_point<T>::value/

  • Seite 382 (Martin Sander)

falscher Screenshot von uniquePtrArray statt von uniquePtr

  • Seite 443 (Martin Sander)

s/Bukket/Bucket/

  • Seite 519 (Martin Sander)

(Boehm, 2011) ist nicht mehr verfügbar, aber http://www.hboehm.info/c++mm/

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Mentoring

Stay Informed about my Mentoring

 

Rezensionen

Tutorial

Besucher

Heute 3338

Gestern 2204

Woche 18208

Monat 37325

Insgesamt 3799418

Aktuell sind 84 Gäste und keine Mitglieder online

Kubik-Rubik Joomla! Extensions

Abonniere den Newsletter (+ pdf Päckchen)

Beiträge-Archiv

Sourcecode

Neuste Kommentare