What is name mangling?

Answer Posted / atul shankhwar

Name mangling is the process through which your c++ compilers give each function in your program a unique name. In C++, all programs have at-least a few functions with the same name. Name mangling is a concession to the fact that linker always insists on all function names being unique.

Example:
In general, member names are made unique by concatenating the name of the member with that of the class e.g. given the declaration:
class Bar
{
public:
int ival;
...
};
ival becomes something like:
// a possible member name mangling
ival__3Bar
Consider this derivation:
class Foo : public Bar
{
public:
int ival;
...
}
The internal representation of a Foo object is the concatenation of its base and derived class members.
// Pseudo C++ code
// Internal representation of Foo
class Foo
{
public:
int ival__3Bar;
int ival__3Foo;
...
};
Unambiguous access of either ival members is achieved through name mangling. Member functions, because they can be overloaded, require an extensive mangling to provide each with a unique name. Here the compiler generates the same name for the two overloaded instances(Their argument lists make their instances unique).

Is This Answer Correct ?    0 Yes 0 No



Post New Answer       View All Answers


Please Help Members By Posting Answers For Below Questions

What are the differences between new and malloc?

817


What is the return value of the insertion operator?

835


an operation between an integer and real always yeilds a) integer result b) real result c) float result

933


Why namespace is used in c++?

783


We all know that a const variable needs to be initialized at the time of declaration. Then how come the program given below runs properly even when we have not initialized p?

818


Is c or c++ more useful?

798


What is a friend function in c++?

1017


What is the most common mistake on c++ and oo projects?

712


Should I learn c++ c?

809


What is a buffer c++?

772


What is a storage class?

877


How do you traverse a btree in backward in-order?

819


Does there exist any other function which can be used to convert an integer or a float to a string?

830


What is time h in c++?

852


What are the stages in the development cycle?

773