ссылки в C++
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



ссылки в C++ Expand / Collapse
Автор
Сообщение
08.01.2007 19:46
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 08.01.2007 20:35
Сообщ.: 7, Visits: 21
Мне понятно как работают ссылки... но не ясно для каких целей они используются..помогите пожалуйста!
Сообщ. #909453
08.01.2007 22:16
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 29.05.2008 20:04
Сообщ.: 269, Visits: 2 381
ccылка это значёк амперсанда ("&") перед переменной...

пример:

int i=10;   /* Выделяет участок памяти для переменной i типа integer (4 байта) и записывает значение в участок памяти равный 10 */

int *ii=&i;  /* Переменная ii типа integer не выделет "второй" участок памяти для значения переменной ii которой будет равен 10, а обратиться к учаску памяти переменной i и возьмёт значение оттуда, при этом формально у нас будет выделен только один участок памяти (тоесть 4 байта) */

ссылки используються для экономии памяти в программах на С++...

В Java к примеру ссылок и указателей нету из-за этого простейшая программма на Java есть много памяти на компьютере по сравнению с С++ и из-за этого, может ухудшаться быстродействие программы и "стабильности" системы в целом (при нехватки памяти всё начинает тормозить =))

----------------------------------
Я безработный...
Возьмите меня на работу. =)

Сообщ. #909457
09.01.2007 12:23
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Ссылки часто используются при передаче параметров чтобы избежать копирования параметра в стек и лишнего вызова конструктора (если параметр это объект). Также их использование позволяет обрашаться к полям параметра без оператора ->, что улучшает читабельность.
Сообщ. #909470
09.01.2007 12:29
Supreme Being

Supreme Being

модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240, Visits: 65 445
Vizlim (08.01.2007)
В Java к примеру ссылок и указателей нету из-за этого простейшая программма на Java есть много памяти на компьютере по сравнению с С++ и из-за этого, может ухудшаться быстродействие программы и "стабильности" системы в целом (при нехватки памяти всё начинает тормозить =))

Глупость. Наличие указателей в языке программирования никак не связано с требованиями к памяти и к стабильности работы. Java требует больше памяти из-за своей виртуальной машины. Тоже самое верно для .NET Framework и для похожих систем. Новички в С++ чаще всего  испытывают трудности именно с указатели и допускают ошибки ухудщающие стабильность программы.

Сообщ. #909471
09.01.2007 14:01


Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 14.05.2008 23:42
Сообщ.: 121, Visits: 2 333
Вообще-то ссылка физически является обычным указателем (и ничем не отличается от него). Просто имеет поведение того объекта, на который она указывает. Т.е. мы думаем, что работаем с объектом, а на самом деле это указатель на него.
Зачем понадобилось ее включение в язык? Голуб пишет, что имитация Паскаля здесь не главное. Ссылки используются для задания паpаметpов, возвpащаемых значений, а также при пеpегpузке опеpаций. А направлено это все, как уже было сказано, на экономию ресурсов стека. Иногда ссылка может использоваться именно ради удобства работы с имитируемым объектом, а не с указателем.
Проблемы ссылок хорошо описаны в книге "Enough Rope to Shoot Yourself in the Foot: Rules for C and C++ Programming", Allen I. Holub.
Сообщ. #909479
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 2:59