Names add information and introduce a single point of maintenance; raw numbers duplicated throughout a program are anonymous and a maintenance hassle. Constants should be enumerators or const values, scoped and named appropriately.
One 42 may not be the same as another 42. Worse, "in-head" computations made by the programmer (e.g., "this 84 comes from doubling the 42 used five lines ago") make it tedious and error-prone to later replace 42 with another constant.
Prefer replacing hardcoded strings with symbolic constants. Keeping strings separate from the code (e.g., in a dedicated .cpp or resource file) lets non-programmers review and update them, reduces duplication, and helps internationalization.