As I reported in this article, Microsoft has a free C++-compiler. The only downside (if you can call it that) is that it’s just the compiler and not the full Development Enviroment (known as Visual Studio). But now, Microsoft has Visual Studio Express. The compilers of all their languages (VB.NET, VC.NET, C# and J#), Web Dev and SQL Server in a free for home-use Express version.

The versions you can download right now are just beta’s. But it’s just a matter of time before the release versions will be available.
Also note that the versions are intended for people who want to learn about Visual Studio development and not for actual commercial application development. The compiler is toned down a bit and the IDE is also a bit ’simpeler’. And both MFC and ATL are missing from the install. This, however, still doesn’t mean you can’t create full-fledged applications. So I’d suspect the EULA to say a bit about this as well :-)

If you want to give feedback, or just keep up on Visual Studio Express, you can read the VS Express Team Blog.