Linkliste für Neulinge (C++)
-
Analog zu http://www.c-plusplus.net/forum/310063
starte ich hier einen Thread zum Sammeln von nützlichen Links und Tipps für Neulinge, das ganze kommt dann in die FAQ.So, hier startet unsere aktuelle Seite, wenn sie fertig ist sende ich Marc++us (oder einem anderen Mod) den BBCode.
--------------------------------------------------------------------------------Linkliste für C++-Neulinge
Mit
gekennzeichnete Themen setzen solide Grundkenntnisse voraus.
Referenzen
Mit Referenz ist eine Dokumentation der C++-Standardbibliothek gemeint.
Die beiden bekanntesten und wahrscheinlich auch umfangreichsten Websites sind:Zu cppreference.com sei gesagt, dass sie C++11 zur Zeit besser abdeckt, als cplusplus.com.
Eine Referenz lässt sich nur effizient nutzen, wenn man bereits eine Vorstellung hat, wonach man sucht. Sie ersetzt kein Lehrbuch.Bücher
Für Anfänger ist das wichtigste ein gutes Buch, welches Sprachgrundlagen und Standardbibliothek verständlich und korrekt erklärt:
Wer nach einem kostenlosen Ersatz für ein Buch sucht, ist mit dem Openbook "Thinking in C++" gut bedient:
Magazin
Seit 2005 bringt c-plusplus.net das C++-Magazin heraus. Viele Stammgäste des Forums haben sich als gute Autoren darin verewigt:
Oft empfohlene Artikel sind unter anderem:
- Ein- und Ausgabe in C++ - IO-Streams
- Zufälle gibt's?! - Funktionen rund um rand, Random und den Zufall
- Stringverarbeitung in C++
- Speicherverwaltung in C++ (und C)
- Überladung von Operatoren in C++
- Aufbau der Standardlibrary - Teil 1: Container
- Aufbau der Standardlibrary - Teil 2: Iteratoren und Algorithmen
- Aufbau der Standardlibrary - Teil 3: Hilfsklassen und Erweiterungen
- Einführung in Design Patterns
- Einführung in die Programmierung mit Templates
FAQs
Viele Fragen wurden schon oft gestellt und noch öfter beantwortet:
- C/C++ Forum :: Die meist gestellten Fragen
- parashift.com/c++-faq - Not just How-also When and Why!
C++-Tutorials
Tutorials ersetzen kein Buch, seien aber trotzdem erwähnt:
- cplusplus.com/doc/tutorial (download)
- c++.de - Tutorials und Ebooks - C++ (deutsch)
- c++.de - Tutorials und Ebooks - C++
- c++.de - Tutorials und Ebooks - Object Oriented Programming
- c++.de - Tutorials und Ebooks - STL
C++11
C++11 ist die neueste Fassung des C++-Standards, welche im August 2011 von der ISO verabschiedet wurde und C++03 ersetzt.
Während das Verständnis einiger neuen Features wie z. B. lambda functions and expressions, variadic templates und multithreading samt tls solide Grundkenntnisse voraussetzt, sind andere bereits für Sprachneulinge interessant:
- C++11 - Artikel in der englischen Wikipedia samt Auflistung wichtiger Neuerungen
- ISO/IEC Document n3337 - frei erhältlicher Entwurf, der zum kostenpflichtigen Standard führte
Um C++11 Code kompilieren zu können, braucht man einen C++11-kompatiblen Compiler. Die aktuellsten Versionen der gängigen Compiler unterstützen die meisten der mit C++11 eingeführten Features:
- GCC 4.7.1/4.8
- Clang ab Version 3
- Visual C++ 11.0 (Teil von Visual Studio 2012)
Bezugsquellen finden sich im folgenden Abschnitt.
Compiler und IDEs
- C/C++ Forum :: Liste kostenloser Compiler und IDEs
- C/C++ Forum :: FAQ - Compiler & IDEs
- C/C++ Forum :: Compiler- und IDE-Forum
Boost
Boost ist eine Sammlung vieler Bibliotheken, die unter C++-Programmierern breite Verwendung finden. Viele der sog. Boost-Libs wurden bereits in den C++-Standard integriert.
Wer Boost nicht selbst kompilieren möchte, kann auf nuwen.net eine MinGW Distribution (gcc) inklusive vorkompiliertem Boost beziehen. Für Benutzer von Visual Studio 2003-2010 gibt es Boost vorkompiliert samt Installer auf boostpro.com.- boost.org - offizielle Website
- Getting Started on Unix Variants
- Getting Started on Windows
- Highscore-Tutorials (deutsch, teils veraltet)
GUI-Programmierung
Eine graphische Oberfläche ist ein wesentlicher Bestandteil vieler Desktopapplikationen.
- C/C++ Forum :: Wie kann ich eine Oberfläche programmieren (siehe Punkt 1)
- C/C++ Forum :: Alles zur GUI Programmierung in C und C++
Tutorial zu wxWidgets im C++-Magazin:
Artikel zu den MFC im C++-Magazin:
- Eine MFC-Anwendung unicodefähig machen
- Eine MFC-Anwendung mehrsprachfähig erstellen
- Zusammenhänge der Klassen einer SDI in der MFC
- Datenbankzugriff mit CRecordset (und CDatabase)
Verschiedene empfehlenswerte Seiten
- isocpp.org - News, Status & Discussion about Standard C++
- stroustrup.com - offizielle Seite von Bjarne Stroustrup, Erfinder von C++
- cdecl.org - übersetzt C gibberish nach Englisch
Hilfe beim Posten
Bevor man eine Frage stellt die Suchfunktion benutzen und ggf. einen Blick in die C++-FAQs werfen! Viele Fragen wurden schon oft gestellt und noch öfter beantwortet.
-
Sone schrieb:
Keine Referenz wie int &variable
...
Hä? Ich verstehe gar nichts!
...
Es ist leicht, Grundlagen in C++ falsch zu lernen. Und einige Bücher wie "C++ von A bis Z" machen es noch leichter.Ich empfehle: Keine Ironie oder lustige Formulierungen in solchen Threads. Einfache klare Aussagen und auch kein Gelaber. Dies sollen Leute lesen, die keine Foreninsiderwitze verstehen, absolut keine Ahnung von C++ haben und sachliche Antworten suchen.
-
SeppJ schrieb:
Sone schrieb:
Keine Referenz wie int &variable
...
Hä? Ich verstehe gar nichts!
...
Es ist leicht, Grundlagen in C++ falsch zu lernen. Und einige Bücher wie "C++ von A bis Z" machen es noch leichter.Ich empfehle: Keine Ironie oder lustige Formulierungen in solchen Threads. Einfache klare Aussagen und auch kein Gelaber. Dies sollen Leute lesen, die keine Foreninsiderwitze verstehen, absolut keine Ahnung von C++ haben und sachliche Antworten suchen.
Ja, du hast Recht. Editiert.
Weitere Vorschläge?
-
Sone schrieb:
Weitere Vorschläge?
Habe dieses Wochenende leider nicht genug Zeit, mich eingehend damit zu befassen.
Aber Danke für die Mühe
-
-
Die neue Seite des Standard-Komitees. Soll eine Sammlung für alles rund um C++ werden: http://isocpp.org/
-
http://www.stroustrup.com/ fällt mir auf die Schnelle noch ein. Dort hat es:
some biographical material,
a C++11 FAQ,
some frequently asked questions,
some frequently asked questions about C++ style and technique, and
a C++ glossaryvon jemandem, der die Antworten weiß
.
edit: Und http://cdecl.org/ Ist zwar auf C ausgerichtet, kann aber auch Referenzen und ist auch in C++ manchmal ganz nützlich.
edit2: Boost sollte man wohl auch mal verlinken. Ist De-Facto Standard und ermöglicht auch unter alten Compilern viele Bibliotheksfeatures von C++11.
-
Vielen Dank!
Die Mods dürfen natürlich gerne auch selbst editieren.
-
Inhalts-Verzeichnis hinzugefügt, Boost und genannte Websites ergänzt.
-
Vielleicht sollte man noch bei IDE und Compiler erklären, was der Unterschied ist zwischen Linker und Compiler. Außerdem ist Debuggin ein Fremdwort für Anfänger, dabei sie es von Anfang an anwenden
-
onlyhelpyou schrieb:
Vielleicht sollte man noch bei IDE und Compiler erklären, was der Unterschied ist zwischen Linker und Compiler. Außerdem ist Debuggin ein Fremdwort für Anfänger, dabei sie es von Anfang an anwenden
Das ist eine Linkliste. Ich bin schon z. T. zu sehr ins Detail gegangen. Was der Unterschied zwischen Linker und Compiler ist, ist auf der Wikipedia-Seite gut erklärt. Und auch Debugging gehört hier nicht rein, nicht in die Linkliste.
-
Sone schrieb:
C++-Referenzen
Die
B[b]eiden bekanntesten (und wahrscheinlich auchbesten[umfangreichsten | vollständigsten]) Websites sind:
[...]
Zur letzteren sei gesagt, dass sie für die im neuen Standard C++11 erschienen Neuerungen schon mehr Artikel hat als die erste.
Es gibt von der letzten auch eineD[d]eutsche Version,einfach das "en" durch "de" ersetzen (Achtung, die Deutsche Seite hat viel weniger Artikel als die erste!).(http://de.cppreference.com/w/), welche jedoch deutlich weniger Umfangreich ist als dieE[e]nglische.
Natürlich muss man (gut) Englisch können, um die Dokumentationen zu verstehen.[sinnfreie Anmerkung]Was ist eine C++-Referenz?
Mit C++-Referenz ist eineDokumentierungDokumentation dergesamtenC++-Standardbibliothek gemeint. Also:STL,[STL \not \subseteq Standardlibrary] Iostreams,und so weiter und so fort.[... und weiter was? Beispiele anführen oder weg damit.]Noch ein Tipp: [<- imo Grenzwertig für eine Linkliste]
In einer C++-Referenz muss man schon gezielt wissen wonach man sucht. Eine Referenz ist schließlich dazu da, eine Funktion zu suchen oder nachzuschlagen was genau sie macht, u. ä. Eine C++-Referenz ist kein Tutorial!Bücher
Ein gutes Buch ist für Anfänger unentbehrlich![<- imo anbetrachts des Nachfolgenden überflüssig]
Als[Für] Anfänger ist das wichtigste ein gutes Buch, dasseinem beibringt[vermittelt ,] wie sauberer Code und gutes Design aussieht und die Grundlagen und auch etwas fortgeschrittenere Sachen verständlich und korrekt vermittelt.
[aha. Und ganz fortgeschrittene Sachen sind schon soweit fort, daß sie ein Buch auf zwei Einbandstelzen garnicht mehr einholen kann ... furchtbare Formulierung, bitte überarbeiten.]Das Bücher-Forum: http://www.c-plusplus.net/forum/f65
Einen guten
Bücherthread (also einThread mit Buchvorschlägen für Anfänger~~)~~ gibt es hier: http://www.c-plusplus.net/forum/251551Achtung! [<- muss sein??] Einige gute Bücher sind nur auf Englisch erhältlich. Der C++-Primer bspw. ist das C++-Buch schlechthin und wird Anfängern (und sogar Fortgeschrittenen) so gut wie immer empfohlen. Es ist aber zur Zeit nur auf Englisch verfügbar[,]
([.]da)ausverkauft[vergriffen]Compiler und IDEs
Hier ein sehr guter Beitrag von ruediger: http://www.c-plusplus.net/forum/263174
C++11
Hier erstmal der Wiki-Artikel (englisch): http://en.wikipedia.org/wiki/C%2B%2B11
Übersetzt heißt es in der Einleitung:
C++11 (früher bekannt als C++0x) ist die aktuellste Version des C++-Standards. Sie wurde von der ISO am 12 August letzten Jahres offiziell freigegeben und ersetzt C++03.
Der Name "C++11" setzt sich aus dem Namen der Programmiersprache (C++) und dem Jahr der Fertigstellung/Veröffentlichung (11) zusammen.C++11 enthält viele Ergänzungen des Sprachkerns und erweitert die Standardbibliothek.
Aber nicht so voreilig! Erst mal richtig C++ lernen, bevor man sich an Lambdas, variadic-templates und Co. ranmacht. [Vorgehendes Wiki-Zitat und dieser Absatz müssen sein??]
Interessant allerdings auch für fortgeschrittene Anfänger sind Sachen wie auto, range-based for, usw.
(Das wird auch nochmal im Wiki-Artikel erklärt!)[Wirr. Bezieht sich worauf?]
Diese "fortgeschrittenen Anfänger" sollten auch gerade mal von den neuen Funktionen (Also Klassen- und Funktions-Templates, Chrono, Random usw.) in der Standardbiliothek Gebrauch machen, das heißt, wenn sie überhaupt schon mit Templates umgehen können![Herablassend wie eh und je ...]Um C++11 Code kompilieren zu können, braucht man einen C++11-kompatiblen Compiler. Da die Kompabilität langsam hinzukam, lieber gleich die neueste Version seines Compiler-Favoriten nehmen[:]
, derGCChat da4.7.1/4.8, Clang ab Version 3, undVC++[Visual C++ 11.0]beials Teil vonVS[Visual Studio] 2012. [links?]Boost
Boost ist eine Sammlung von vielen Bibliotheken~~, ohne die fast kein richtiger C++-Programmierer auskommt.
[gewagte Mutmaßung] Viele von diesen sog. Boost-Libs wurden bereits in den C++11-Standard integriert., also Vorsicht, Anfänger!~~[Vorsicht? Herablassend wie eh und je. Evtl. ein Link zum stressfreien Setup stattdessen!?]
Die Boost-Libs machen zum Großteil viel Gebrauch von Templates und Boost ist nicht so einfach zu InstallierenBoost ist sehr professionell programmiert und hat viele interessante Bibliotheken die die skurilsten Bedürfnisse abdecken. Boost ist international und daher die Seiten alle auf Englisch. [<- nicht ganz deutsch] Deutsche Tutorials gibt es allerdings auch,
siehe die (sind jedoch Teils veralteten)[:] Highscore-Tutorials.[url]-Tags?
-
So, korrigiert, vielen Dank!
Kannst du nochmal drüber gucken? Habe ich was vergessen?Und das mit den [url]-Tags verstehe ich nicht, meinst du das ich weniger rohe Links angeben sollte? Das finde ich nicht.
-
Die rohen Links finde ich auch nicht so gut. Die stören halt einfach beim lesen des Texts und bringen keine Mehrinformation. Gerade bei den Forenlinks
http://www.c-plusplus.net/forum/151578 - Die meist gestellten Fragen
http://www.c-plusplus.net/forum/200753 - Du brauchst Hilfe?
http://www.c-plusplus.net/forum/304133 - Wie poste ich richtig Code?ist doch viel übersichtlicher.
-
Die rohen Links meinte ich gar nicht. Da hast du Recht, das wollte ich noch nachmachen und habe es vergessen
Editiert.Noch was?
-
Vielleicht ist das schon wieder viel zu viel ins Detail gegangen, aber ich würde auch noch eine Sektion über UI-Bibliotheken hinzufügen oder die Bekanntesten zumindest mal erwähnen (MFC, wxWidgets, QT usw.)
-
Was haben Neulinge mit GUIs am Hut?
-
otze_logout schrieb:
Was haben Neulinge mit GUIs am Hut?
Oft mehr als ihrem Verständnis guttut.
-
pumuckl schrieb:
otze_logout schrieb:
Was haben Neulinge mit GUIs am Hut?
Oft mehr als ihrem Verständnis guttut.
Ich pack einen Link und eine kurze Beschreibung rein.
-
Done.
Vorschläge, los los!
-
// superseded