I would recommend googling for LFS (Linux from Scratch).
As the above link shows, the best bet is to compile from source. Then you can specify an install prefix when you run the configure command. Do you follow? You will need to be careful about what you affix to the ./configure command. You can run ./configure --help to get a list of options.
For instance to have all packages installed under a certain prefix run
Which will then, when you run make install, put everything under the /opt directory. This effectively separates gcc 2.95 from gcc 3.3.
Follow the boxed link at the above link to get details about making sure that c++ gets installed too.
Hope that helps.