Daniel B. answered 12/14/20
PhD in Computer Science with 42 years in Computer Research
The answer is "Name Mangling".
That is how the C++ compiler deals with polymorphism.
For example, consider these two functions
void f(void);
void f(int);
They have the same name "f", but are actually different functions,
and need to be treated as if they had different names.
So the compiler "mangles" the name "f" by attaching to it the types
of the arguments.
This results in the two functions getting distinct "mangled" names.