© 2014 Firstsoft Technologies (P) Limited. login
Hi 'Guest'
Home SiteMap Contact Us Disclaimer
enggedu

C and C++ Interview Questions

90.  What is name mangling?

Ans:

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

SLogix Student Projects
bottom