Name Mangling

Některé jazyky podporují přetěžování funkcí, operátorů a metod. To způsobuje v programu stav, kdy samotný název identifikátoru (symbolu) není unikátní. Jak, ale program pozná, které tělo funkce má zavolat? Interně se do názvu symbolu přidává další informace. Tento proces se nazývá name mangling (dekorace jmen). V C++ se obvykle kódují následující informace:

  • jméno symbolu;
  • všeechny jmenné prostory symbolu;
  • jestli je symbol const a/nebo volatile;
  • jestli je symbol public, protected, nebo private;
  • pokud je symbol funkcí nebo metodou, tak jeho argumenty (některé kompilátoru kódují návratový typ);
  • jestli je symbol skalárním nebo vektorovým datovým typem.

Související