Теоритический вопрос по C/C++, Ссылки, искажения имен |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
Теоритический вопрос по C/C++, Ссылки, искажения имен |
Rocket |
16.01.2008 16:34
Сообщение
#1
|
Знаток Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Доброго времени суток! Ответьте, пожалуйста, на поставленные мной вопросы:
1. Ссылочный тип. То есть, что он из себя представляет и его особенности. 2. Искажения имен при компиляции. Причины, последствия. |
volvo |
17.01.2008 0:11
Сообщение
#2
|
Гость |
У тебя слишком объемные вопросы... Что именно тебя интересует по ссылкам? Очень коротко: это - alias (дополнительное имя) объекта... Рассмотрению работы со ссылками посвящены целые главы умных книг, ты же не думаешь, что все то же самое можно уместить в несколько строк? (кстати, в C вообще нет ссылок, только в С++, отсюда возникает сомнение: ты часом ссылки - references - с указателями не перепутал?)
Что касается второго вопроса: Это не называется "шифрование" имен. Это так называемый name mangling - "декорирование" имени... Связано с тем, что С++ допускает перегрузку функций, что делает возможным присутствие в программе нескольких функций с одинаковыми именами, отличающихся только параметрами, а этого допускать нельзя, компилятор должен различать все функции. Поэтому при компиляции к имени функции добавляется еще и список параметров в сокращенном виде (как именно происходит "декорирование" - зависит от компилятора, поэтому никаких конкретных примеров приводить не буду)... А последствия - сложности с экспортом функций (особенно методов классов) из DLL. Вот тут Fanat с этим столкнулся: Dll. |
Rocket |
17.01.2008 17:53
Сообщение
#3
|
Знаток Группа: Пользователи Сообщений: 306 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
В общем суть ясна, спасибо за помощь, остальное буду искать по умным книгам
|
Текстовая версия | 29.04.2024 11:25 |