Wenn du die Sprache C++ lernen willst, ohne auf dummes Windows Rücksicht nehmen zu müssen, dann zieh dir MinGW und schreibe die Progs mit deinem favorisierten Texteditor. Das sind dann zwar nur Konsolenprogs, aber die sind vom Quelltext her auch portabel auf Linux und was es noch so gibt.
Wenn du dann noch GUIs machen willst, dann brauchst du wxWidgets oder GTK+.
Wenn du es so einfach wie in Delphi haben willst, dann nimm den Builder.
C# hat übrigens Managed Code und hat deshalb eher den Status von Java: es ist kein nativer Code sondern etwas, was nochmal kompiliert oder interpretiert werden muss.
Du wird übrigens keinen Compiler finden, der dir C# auf z.B. irgendwelche 68k Mikroprozessoren kompiliert.
Wenn du C++ Tuts brauchst, dann schau mal auf
http://www.cppforum.de/ vorbei. Dort halte ich mich oft auf. Du wirst diverse Links zu Tuts und Compilern finden.
Das beste ist überhaupt wenn du erstmal C lernst. Auf C baut C++, C#, Java, PHP usw. auf. Damit machst du auch nichts verkehrt. Wenn du dann C++ lernen willst, hast du nur noch die objektorientierte Programmierung zu lernen. C# ist dann quasi wie ne Scriptsprache, bei der du dann wieder den schönen Stil verlernst, den du dir mit C/C++ angelernt hast.
Ich sag auch nichts gegen C#, aber es hat sich noch nicht wirklich bewiesen. Jeder (fast) programmiert heutzutage in C/C++, besonders auf nicht-Windows Maschinen. Und ich bezweifle im Moment, dass Linuxentwickler C# so sehr begrüßen, wie es Microsoft haben will.
Wenn ich richtig informiert bin, dann ist C# eine Microsoftentwicklung.
Gruß