Наименование мангал для статических объектов

Я наткнулся эта статья о динамическом связывании в C ++.

Мы можем создать фабрику C ++, которая бы возвращала объект интересующего нас класса.
Кроме того, мы должны создать статический объект в области видимости файла для фабрики, чтобы он мог быть найден с помощью dlsym(), (В статье предполагается, что статические объекты не искажены по имени.)

Почему статические объекты не искажены по имени?

2

Решение

Имя искажение изобретено, чтобы помочь в разрешении перегруженных имен функций. Вы можете определить несколько функций с одним и тем же именем, различающихся только количеством и типами их параметров. Перенос имени позволяет компоновщику разрешить такие функции в правильном месте в коде.

В отличие от имен функций, имена статических объектов в глобальном пространстве имен не могут быть перегружены, поэтому их искажение не требуется. Имена объектов, которые находятся вне глобального пространства имен, на самом деле искажены.

5

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]