Also ich kann C++ empfehlen:
C++ bietet eben alle Möglichkeiten, sowohl die systemnahe Programmierung als auch die sehr viel abstrahiertere. Das Verhalten lässt sich viel feiner steuern als in Java, sollten bestimmte Daten im Speicher etwa ein bestimmtes Verhalten beim Löschen oder kopieren aufweisen, lässt sich dies in C++ modifizieren, wenn man das jedoch schlecht macht, gibt es ein Speicherleck und der Speicher wird voll. Ich muss allerdings sagen: Es war ein funktionierendes Java-Programm, bei dem seit einigen Wochen immer wieder Speicherlecks beobachte - wirklich ernsthaft, also es füllt den ganzen Speicher - nicht wie wenn man in C++ mal eine Speicherstelle vergisst, was wiederum schneller als in Java passiert. C++ bietet mehr Konstrukte, die die Entwicklung einfacher oder (vom Quelltext her) sinnvoller machen.
Die C++-Standardbibliothek bietet sehr gute Sachen, zum Speichern von Variablen in verschiedenen Array-Typen oder auch zur Ein-/Ausgabe auf Kommandozeile und in Dateien. Wenn du hiervon noch mehr braucht, also noch ausgereifter, solltest du die Boost-Bibliothek verwenden. Damit kannst du dann auch Netzwerkprogrammierung betreiben und Verzeichnisse auf der Platte handeln sowie einiges mehr. Um graphische Programme zu erstellen (mit Buttons und so) solltest du zur Bibliothek Qt, damit kannst du sehr komfortable GUIs erstellen, mit Drag-and-Drop, und allem. Außerdem werden auch weitere Funktionen geboten: Ander Möglichkeiten zur Netzwerkprogrammierung, HTTP- und FTP-Zugriff, ein paar praktische Container für deine Variablen, einen Designer, mit dem du das Aussehen des Programms per wysiwyg bestimmen kannst, Malen in 2D und, und, und... Wenn du ein Spiel o. ä. machen möchtest, ist es sinnvoll, in das Qt-Programm die Bibliothek SFML einzubinden, sie bietet effizientes 2D-Rendering - auch von Bildern - Musik und Ton, noch mehr Netzwerkprogrammierung und eben einige Low-Level-Sachen, wenn man direkt auf Eingaben von Tastatur, Maus und Joystick zugreifen möchte. Wenn es an 3D geht, kann man in diese Kombination noch die Bibliothek OpenGL einbinden.
Alle Bibliotheken sind plattformunabhängig konzipiert, das heißt du kannst mit dem selben Quellcode das Programm für Linux, Windoof und Mac erstellen, das bekommen eben viele Spieleentwickler nicht so mit und verwenden DirectX und die WinApi, naja, da muss ich nichts zu sagen, außer dass ich das assozial und etwas dumm finde...
Als Buch kann ich den C++-Primer von Addsion-Wesley empfehlen, für Tutorials schau mal in den Ankündigungen des Forums.
Delphi und C# sind übrigens so ziemlich das Gegenteil von platformunabhängig, Java ist sehr plattformunabhängig, also die gleichen Dateien laufen auf allen Systemen, was aber auf Kosten der Performance geht, er kann da zwar gut optimieren, allerdings muss die reinterpretation jedes Befehls zur Laufzeit einfach mehr Performance kosten. Die Standard-Bibliothek von Java hat gleich GUI-Funktionen etc., ist aber - auch auf Grund von Limitierungen in der Sprache - weniger schlüssig aufgebaut, und ist im Low-Level bereich fast schon unkomfortabel, Qt, Boost und SFML sind wirklich beinahe ebenso schlüssig wie die stdlib aufgebaut, was keine Selbstverständlichkeit, vorallem bei älteren Bibliotheken ist.
Als C++-Compiler benutzst du am besten einfach die gcc, unter Windoof heißt das MinGW, die macht das schon gut.
Aber du brauchst wohl auch noch eine graphische IDE mit einem guten eingebauten Editor, Dateimanagement usw.. Hierfür empfehle ich Kdevelop, das setzt jedoch die Installation der Kdelibs voraus. Wenn du wirklich effektiv in C++ programmieren möchtest (gilt eigentlich auch für Java), würde ich auf Linux umsteigen: Bibliotheken lassen sich dort leichter installieren und kofigurieren, viele wichtige Sachen sind vorinstalliert (der Compiler z. B., oft auch ein paar Bibliotheken), und ein Blick in anderer Leute Quellcode, der hier einfacher ist, hilft auch.
Ein letzter Punkt:
C lernen lohnt sich nicht, du wirst in C++ mehr Möglichkeiten haben, und falls du wirklich einmal reines C brauchst, wirst du das bei C++ gleich "mitgelernt" haben. 
Viele liebe Grüße
The User