It depends. apt-get installs the version you specifiy, or if you don't specify whatever the default is. If the default package is 1.2 then yes, if its 1.1 then no. It depends on the package. Usually it the latest version but not always.
There are several packages for g++ simply because there are slight imcompatabilites and other problems. Some programs will only compile with older versions, simply because the older version has a diffrent ABI or had a non-standard behaviour thats been fixed in the newer version, but which the program used, so it fails.
g++ simply points to the g++ 3.3 package, if type the following
ls -l g++*
you'll probably get this
g++ -> g++-3.3
I don't think you have 2.95, or 3.0 installed, The cache contains stuff you don't have installed, Its a listing of whats available.