|
|
|
новичок
      
участник
Last Login: 08.01.2007 20:35
Сообщ.: 7,
Visits: 21
|
|
| Мне понятно как работают ссылки... но не ясно для каких целей они используются..помогите пожалуйста!
|
|
|
|
|
Supreme 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 есть много памяти на компьютере по сравнению с С++ и из-за этого, может ухудшаться быстродействие программы и "стабильности" системы в целом (при нехватки памяти всё начинает тормозить =))
----------------------------------
Я безработный...
Возьмите меня на работу. =)
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
| Ссылки часто используются при передаче параметров чтобы избежать копирования параметра в стек и лишнего вызова конструктора (если параметр это объект). Также их использование позволяет обрашаться к полям параметра без оператора ->, что улучшает читабельность.
|
|
|
|
|
Supreme Being
модератор
Last Login: 04.05.2008 13:32
Сообщ.: 7 240,
Visits: 65 445
|
|
Vizlim (08.01.2007) В Java к примеру ссылок и указателей нету из-за этого простейшая программма на Java есть много памяти на компьютере по сравнению с С++ и из-за этого, может ухудшаться быстродействие программы и "стабильности" системы в целом (при нехватки памяти всё начинает тормозить =))Глупость. Наличие указателей в языке программирования никак не связано с требованиями к памяти и к стабильности работы. Java требует больше памяти из-за своей виртуальной машины. Тоже самое верно для .NET Framework и для похожих систем. Новички в С++ чаще всего испытывают трудности именно с указатели и допускают ошибки ухудщающие стабильность программы.
|
|
|
|
|
Supreme 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.
|
|
|
|