All right, I know DevilHack has the right idea, I just want to make sure everyone else does. C++ is a programming language as is C, C#, VB, etc. Now a programming language is just an abstract representation of a set of machine instructions. Now G++ is a compiler for a language as is Visual Studio, and BloodShed Dev C++. A compiler takes the abstract representation and turns it into machine instructions (now of course their is a linker in there but I am just grouping it in with the compiler for now). So to summarize:
G++ - Linux C/C++ compiler
Dev C++ - Windows C/C++ compiler
MetroWorks CodeWarrior - Mac C/C++ compiler
Visual Studio - Look at the discussion earlier in this thread