KyaPoocha.com

Huge Collection of Interview Questions


What is name mangling? 

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).



If you liked this question/asnwer, make sure you
Subscribe to KyaPoocha.com RSS feed!


BOOKMARK THIS : BlinkList | del.icio.us | Digg it | Furl | reddit | StumbleUpon | Yahoo MyWeb |