What is name mangling in C++ and its use

(Last Updated On: June 4, 2016)

Answer: Name mangling in C++, means, compiler gives different names to the overloaded functions to avoid ambiguity during functions call at compile time.

[RecommendedExplain function overloading in C++ with its return type and signature.]

For example, in below class we have two overloaded functions with same name i.e. “func”. Now questions is, how does compiler understand these two functions as a different functions? Isn’t the functions call ambiguous for the compiler? Yes, it is ambiguous for compiler and that’s the reason compiler internally gives different names to these overloaded functions to avoid ambiguity.

This is called name mangling in c++.

 

 

NOTES:

  • C++ name mangling is also known as name decoration.
  • It is compiler dependent, hence, different compiler may mangle the same function in a different way.

 

This Question can also be asked as – How does compiler differentiate overloaded functions in C++?

Answer should be Name mangling plus above description.

 

FOCUS: In an interview please don’t stop answering this questions as just “Name Mangling”, but explain the above description too.