Visual C++ er ikke den bedste.
Hvis man skriver standard C++ kan (/bør) alle compilere kunne oversætte koden og få det samme resultat.
Men der er mange ting man kan ikke lave med standard C++, f.ex. GUI, avancerede fil operationer og tråde. Og så er man nødt til at vælge en "extension". Nogle af disse extensions er der kun én compiler der kan oversætte, f.ex. er det kun Borland C++ Builder der kan oversætte VCL programmer.
Nyere Visual C++ compilere har en extension kaldet .net, det er (stort set) kun Visual C++ der kan bruge denne (og koden er ikke længere rigtig C++).
Hvis man kun programmerer for windows kan man bruge Win32Api, som kan forståes på (stort set) samme måde af mange compilere.
wxWidgets er et eksempel på en extention der kan bruges med mange compilere på mange platforme.
Hvis du er ny til C++ vil jeg foreslå Code::Blocks:
http://www.codeblocks.org/