is there a way to compile with a different filename, eg the one I am currently editting, for say "Fireworks 1-2.cpp" will generate "Fireworks 1-2.exe", and then if I do 1-3, that also makes "Fireworks 1-3.exe" ?
Well, that's what for example FB-IDE was doing and probably appears feasible to you for your C-coding, too.
But this makes sense for this specific Basic-IDE only because there's just one "main" source file and no associated linking process.
In C/C++ things work a bit differently. You usually have a lot (and for big projects that's thousands) of source-files that can be compiled independently. The benefit is when you change only a single file, the compiler can just recompile this single file and leave the rest untouched (saving a couple of minutes of rebuilding-time).
In a second process the linker assembles all the code that is spread across many .obj-files (and probably a couple of libs) to a single .exe.
The linker can't know that you want it to name the resulting executable just like one of the source-files, that's why you have to specify the name manually.
More generally I don't think it's a good idea to have different versions of source-files inside a single project, or even have version numbers within the filename.
The reason why there's a "project" at all is to let the compiler know what needs to be compiled and let the linker know what needs to stuffed into your exe.
If you've got things floating around that doesn't belong to any of these two then it's simply garbage.
When you've reached a state you want to preserve better make a copy.
Managing sources and settings is one of the main virtues of C++ programming.
Besides laziness, impatience and hubris of course.