On Windows, you have essentially two viable choices if you want to keep it free, those being Visual C++ and MinGW. The first comes with Visual Studio, the other comes bundled with other IDEs like Code::Blocks, but can be installed alone as well.
on windows, i prefer visual c++ (you can use visual c++ express for free), but you should get linux and use g++ (mingw is a windows adaptation of g++) :P