Stop what you are doing and ...
#1 - Starting using NameSpaces.
#2 - Adopt a Revision Control System (Source Code Control System).
Without knowing more about your particular problem domain, platform,
or budget, it is impossible to make a specific recommendation, but
Subversion is always a good bet.
http://en.wikipedia.org/wiki/Comparison_of_Subversion_clients
It might be useful to expand on #2 above.
The SCCS becomes the repository for your source code, not just to
provide revision services but as an organizer. Think of it as a
database in which you arrange and store your source in logical or
practical units ("folders", "directories", etc. exact terminology will
depend on the SCCS you decide to use) divorced from any physical
storage. Each of the stored elements will have a "working directory".
Thus you can organize your modules into logical units, yet dump them
into a single physical folder while you are working with them. The
SCCS is becomes in effect a view of your project as a whole - where
they are physically stored while developing (often a single folder) is
of secondary interest.
While organizing your project keep an eye out for logical "packages"
that can be treated as separate "deliverables" and once constructed
are seldom touched. These can be moved into projects of their own.
Your current working project only needs to deal with a few .libs and
headers. Almost any OO project can reduce its current modules of
interest dramatically by recognizing and removing such packages.
[Separate package projects also makes it easier to work with the
issues brought up by the others, but that - as they say - is another
story. <g>]
It would be helpful if we knew the IDE (if any) you are using and your
budget.
-ralph