Viele Sachen werden in diesem Forum oft wiederholt, deshalb möchte ich hier einmal einige Sachen zusammenstellen:
Tutorials:
http://www.online-tutorials.net/c-c++-c/c++-tu…als-t-1-58.html (C++-Tutorial, geht jedoch vor allem auf die C-Bestandteile ein)
http://www.online-tutorials.net/c-c++-c/c++-tu…ls-t-1-230.html (Fortsetzung, die auf die OOP eingeht)
http://de.wikibooks.org/wiki/C (C-Tutorial auf Wikibooks)
http://de.wikibooks.org/wiki/C++ (C++-Tutorial auf Wikibooks)
http://www.tutorials.at (C-Tutorial)
Bücher
C++ Primer - Ein Buch perfekt für Einsteiger mit etwas Programmierkenntniss. Bietet mit der Zeit einen tiefen Einblick in C++. Dabei wird konsequent mit High-Level-Methoden gearbeitet, was dem Einsteiger später unkompliziertere Entwicklung ermöglicht.
Bjarne Stroustrup - Die C++ Programmiersprache - Das C++-Standardwerk (nicht für blutige Anfänger)
Andrei Alexandrescu - Modernes C++ - Absolut geniale Template-Programmierung. Erfordert ein breites Verständnis von Templates. Einige Spracheigenschaften werden jedoch erklärt. Auf keinen Fall für Anfänger geeignet, da der Code hoch komplex ist und vor allem auch Design eine Rolle spielt.
Außerdem recht bekannt:
Scott Meyers, Effective C++
Bibliotheken:
SFML: http://sfml-dev.org (allgemeine Multimedia und Netzwerk-Bibliothek)
Clanlib: http://clanlib.org (Multimedia und Netzwerk speziell für Spiele, mit Gui)
Allegro: http://alleg.sourceforge.net/index.de.html (Multimedia und Netzwerk, aber auf C-Basis, nicht objektorientiert)
SDL: http://www.libsdl.org/ (Multimedia und Netzwerk, aber auch nicht objektorientiert und relativ Hardware nah)
(Multimedia meint, dass sich 2D-Sachen für Spiele zeichnen lassen, Sound ausgegeben werden kann, Animationen etc.)
Boost: http://www.boost.org/ (allgemeine Bibliothek, z. B. Verzeichnishandling, XML-Parsing, Algorithmen...)
Qt: http://trolltech.com/products/qt/ (Bibliothek zum erstellen von teils sehr komfortablen Benutzeroberflächen, für 2D-Graphik sehr geeignet)
wxWidgets: http://www.wxwidgets.org/ (eine weitere GUI-Bibliothek)
GTK+: http://www.gtk.org/ (GUI-Bibliothek, nicht objektorientiert)
KDE: http://techbase.kde.org (setzt auf Qt auf und bietet nochmehr Funktionen sowie die Integration in den KDE-Desktop, zu erwähnen ist eine erweiterte Scripting-Engine)
(GUI = Graphical User Interface, also für Fenster, Buttons, Texteingaben etc.)
http://www.opengl.org/ (umfangreiche 3D-Bibliothek, nicht objektorientiert)
OpenSceneGraph: http://www.openscenegraph.org/projects/osg (Objektorientierung auf Basis von OpenGL)
Irrlicht: http://irrlicht.sourceforge.net/ (Ebenfalls objektorientiert, unterstützt außerdem auch Direct3D und die Datei-Formate einiger Spiele)
Crypto++: http://cryptopp.com (C++-Bibliothek zur Verschlüsselung)
Magick++: http://www.imagemagick.org/script/index.php (Bibliothek zur Bearbeitung von Bildern)
MySQL++: http://tangentsoft.net/mysql++/ (objektorientierter, sicherer Zugriff auf das bekannte Datenbanksystem)
SymbolicC++: http://issc.uj.ac.za/symbolic/symbolic.html (CAS-Bibliothek, komplizierte Berechnungen, symbolische Mathematik, Lisp-Support)
Diese Bibliotheken sind alle mehr oder minder Plattformunabhängig, wenn ihr solche Bibliotheken verwendet, könnt ihr also den selben Quelltext meist auf Linux, Windoof, BSD, MacOSX, Solaris... kompilieren!!!
Es soll auch keiner sagen, dass diese Bibliotheken nicht genug bieten.
Wenn hier keine mehr helfen kann (was ja eigentlich gar nicht geht...)
http://www.c-plusplus.de - ein deutschsprachiges Forum, dass C++ als echten Themenschwerpunkt hat.
http://www.cplusplus.com/forum/ - falls es war ist, dass die deutschen Programmierer zu schlecht sind, kann auch hier gefragt werden.
http://qtforum.de/forum/ - ein sehr nettes Forum rund um Qt, das auch auf grundsätzliche C++-Fragen sowie Qt für Java eingeht.
Tutorials zu externen Bibliotheken
http://doc.trolltech.com/4.4/tutorials.html - offizielle englischsprachige Qt-Tutorials
http://doc.trolltech.com/4.4 - offizielle Qt-Dokumentation mit vielen lehrreichen Beispielen
http://opengl.org/code/ - die offiziellen OpenGL-Tutorials
http://www.sfml-dev.org/tutorials/ - offizielle SFML-Tutorials, neben dem benutzererstellten Wiki
Was alles geht in C++
http://en.wikibooks.org/wiki/More_C%2B%2B_Idioms/ - Eine noch nicht ganz vollständige Vorstellung sehr vieler C++-Idiome und Paradigmen
http://freakycpp.com/ - Man sieht einmal, dass Policy-Based-Design "freaky" und sinnvoll ist.
-------------------------------------------------------------------------------------------------------------------------
Noch ein Hinweis für den C++-Teil des Forums:
Verwendet doch bitte nach Möglichkeit Standard-C++, Visual C++ ist nur eine verunstaltete, plattformabhängige Version von C++.
Die Standardbibliothek ist dein Freund. Sie bietet Klassen, die das Programmieren wesentlich einfacher und flexibler gestalten, insbesondere aufwendige Zeigeroperationen sind meist nicht nötig, C-Strings sind vollständig zu meiden, Arrays meist zu unkomfortabel im Vergleich zu list, vector und deque, streams praktisch zum formatieren und zur Ein-/Ausgabe.
Die Standardbibliothek lässt sich erkunden unter:
http://cplusplus.com
Außerdem sollte Objektorientierung in C++ kein Fremdwort sein, nicht nur in Java kann man so etwas machen, C++ bietet da sogar noch einiges mehr. Auch Templates entfalten ihre ganze Stärke übrigens erst mit Klassen.
Kurz um: Spart euch den Low-Level-Kram und schreibt effizientes und sicheres C++, das sich von C-Relikten verabschiedet!
Compiler und IDEs
gcc, g++, ist bei Linux Standard, unter Mac bei den Entwicklertools, Windoof-Version MinGW
KDevelop: http://www.kdevelop.org/ (IDE für KDE - gibt es für die meisten Systeme - hiermit lassen sich insebesondere auch QT und KDE-Applikationen oder auch Plasmoide entwickeln, unterstützt automake, cmake, rpmbuild, cvs, svn...)
Code::Blocks: http://www.codeblocks.org/ (eine weitere IDE mit gutem wxwidgets-Support)
DevC++: http://www.bloodshed.net/devcpp.html (eine IDE vor allem für Windoof, seit Ewigkeiten in der Beta)
wxDevC++: http://wxdsgn.sourceforge.net/ (basiert auf Dev-C++, fügt u. a. wxwidgets-Support hinzu)
QDevelop: http://qdevelop.org/ (vor allem für Qt4, plattformunabhängig)
Qt Creator: http://trolltech.com/about/news/qt-…review-released (IDE von und für Qt, noch in der Preview)
Scannen und Parsen
Flex: http://flex.sourceforge.net/ (Freie Variante von Lex, dient der lexikalischen Analyse, erzeugt also Tokens aus übergebenem Text nach übergebenen Regeln)
GNU Bison: http://www.gnu.org/software/bison/ (Freie Variante von Yacc, erzeugt Quellcode zum Auswerten einer Grammatik, die sich als BNF beschreiben lässt)
QLALR: http://labs.trolltech.com/page/Projects/Compilers/QLALR (Ähnliche Funktionalität wie Bison, gehört zum Qt-Projekt)
Boost bietet auch einige Features für Reguläre Ausdrücke und Kontextfreie Grammatiken.
Tools zum Erstellen von Makefiles
Automake, Autoconf und libtool: http://www.gnu.org/software/automake/ (Der gängigste Weg, Makefiles zu erstellen, dabei wird zunächst ein Script Namens configure erstellt, das Makefiles passend zum System erstellt und abhängigkeiten überprüft)
QMake: http://doc.trolltech.com/4.5/qmake-manual.html (Narrensicher, einfach und dennoch mächtig, sehr verständliche kurze Konfigurationsdateien, Teil des Qt-Projekts)
CMake: http://www.cmake.org/ (Ebenfalls wesentlich einfacher als Automake, allerdings sehr mächtig)
Versionierungstools
Subversion: http://subversion.tigris.org/ (Wohl das populärste System)
CVS: http://www.nongnu.org/cvs/ (Schon etwas älter als SVN)
Git: http://git-scm.com/
Bazaar: http://bazaar-vcs.org (Extrem einfach und mächtig, unterstützt verschiedenste Entwicklungsabläufe)
Hosting-Plattformen
Sourceforge: http://sourceforge.net (Die größte Plattform, verwendet unfreie Software)
Savannah: http://savannah.gnu.org (Plattform der FSF, verwendet nur Freie Software (Savane))
Gna!: http://gna.org (Verwendet die selbe Software wie Savannah)
Launchpad: http://launchpad.net (Verwendet unfreie Software)
Vierzehn Gründe für C++ und gegen Java
-C++ zwingt niemandem ein Programmier-Paradigma auf: Funktionale Programmierung ist möglich
-C++ bietet Templates und somit erweiterte Möglichkeiten für typsichere Container, Meta-Programmierung und Policy-Based-Design
-Der Umgang mit Java-Klassen ist mangels Operator-Überladung wenig intuitiv
-C++ ist wesentlich schneller, da erweiterte Möglichkeiten zur Optimierung (inline-Funktionen, freie Speicherverwaltung, mehr integrierte Typen...) zur Verfügung stehen und nativer Code erzeugt wird
-C++ ist plattformunabhängig auf Quellcode-Ebene, native Programme werden immer gebraucht
-C++ bietet eine konsistentere, flexiblere und schnellere Standard-Bibliothek, die jedoch etwas weniger Gebiete abdeckt
-Die gesammte Java-Standard-Bibliothek steht in C++ mit einer adäquaten Syntax zur Verfügung, keinerlei Einschränkung in der Verwendung
-Es gibt hervorragend designte, enorm vielfältige und Freie externe Bibliotheken, die zusammen mehr als die Java-Standard-Bibliothek bieten, z.B. Boost und Qt
-C++ wird von keinem Unternehmen mit seinen kommerziellen Interessen kontrolliert
-C++ ist in der Programmierung auf Embedded-Geräten anwendbar
-C++ bietet uneingeschränkte mehrfache Vererbung, wer das nicht mag, soll es nicht verwenden
-Objekte unterscheiden sich in C++ in der Verwendung kaum von integrierten Typen
-In C++ existieren umfassende Möglichkeiten zur Kopierung und Konvertierung
-Der kommende Standard wird noch mehr Features bieten
Viele liebe Grüße
The User