You can get gcc and g++ through either cygwin or mingw.
Cygwin provides a full layer of POSIX compatibility to implement UNIX and Linux features,such as forking, on top of Windows. This slows things down, but ensures that your UNIX programs will work on Windows. Due to this compatibility layer, you must include a cygwin .dll file with your applications.
MinGW provides a suite of GNU tools that run on Windows natively. This is faster than Cygwin and requires no extra DLL, but does not have the same amount of feature support. This means that not all your UNIX applications can be used on Windows.
Note that when I say that you can use UNIX applications, I mean that they must be built from source; neither of these runs UNIX or ELF binaries.
Either one of these will provide you gcc, which (IMO) is the best compiler, especially if you will be using UNIX and Windows, in which case gcc won't break your build chain.