Non confondiamo le idee a chi comincia:

Il C++ è uno standard internazionale e come tale è identico qualsiasi sia il compilatore che scegli di usare.

Dopodichè, quasi tutti i compilatori moderni possiedoni sia un ambiente visuale di sviluppo (editor, form designer, debugger, gestore di progetti, ecc) che una serie di librerie di codice riutilizzabile che aiutano a sfruttare il meglio il Sistema operativo (M$ ha le MFC, Borland ha le sue, e così via) che non fanno però affatto parte del C++, e che sono si assai diverse da compilatore a compilatore.

Quindi: per imparare il c++ va bene un compilatore qualsiasi, anche perchè ci sono MOLTI aspetti del puro c++ che conviene imparare scrivendo programmi SENZA interfaccia grafica, visto che, come ogni linguaggio ad oggetti moderno, c++ è estremamente sofisticato già nel suo corpo standard, prima ancora di andare ad utilizzare librerie di classi fornite da questo o quell'altro compilatore.

Quanto poi a .net e C# , nonostante non li abbia mai utilizzati, so che sono assai diversi dalle precedenti versioni, non solo nelle librerie offerte, ma anche e soprattutto nella struttura base del linguaggio.

Ciao!