If you install Emacs and g++ in Cygwin, it should work just like Linux, which is to say that you can run M-x compile and use g++ myFile.cpp as your compile command. If you're using the "native" Emacs for Windows, or mixing Cygwin/MinGW/etc, things get a little more complicated (and other answers have solutions), but it boils down to making sure that your environment variables are setup correctly (eg PATH, SHELL, etc). Ultimately, if you can't run it on command line (either cmd.exe or /bin/bash from Cygwin or MinGW), it won't work in any Emacs.
As an example, I compile C++ in Emacs using both SCons/g++ from Cygwin and devenv.com from MS Visual Studio. This of course requires installation of SCons and Visual Studio, but it is possible. SCons installs from Cygwinports (http://sourceware.org/cygwinports/) and ends up in /usr/bin, which is in the standard path, but devenv.com is buried deep in Visual Studio; to get access to it, I add it's containing directory to my PATH (in my ~/.bash_profile):
case $OS in
Windows_NT)
case "`uname -s`" in
CYGWIN_NT*)
PATH=${PATH}:"/cygdrive/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/"
;;
MINGW32_NT*)
PATH=${PATH}:"/c/Program Files (x86)/Microsoft Visual Studio 10.0/Common7/IDE/"
;;
esac
esac
I then construct a compile command of either scons or devenv.com -build "Release|Platform MySolution.sln, and things go merrily along from there. You can get as complicated as you need (in my current project I've got build and test shell scripts that callout to scons and devenv.com; I tend to eschew batch files, as shell is much more powerful). My only complaint is that Microsoft changed the output of errors and so automatically jumping to lines in code from compiler output is currently broken (I need to look into fixing that).
I'm assuming that you are coming from the "native" build of Emacs, in which case, you might also find useful the cygwin-mount module for Emacs.