Форум программистов, компьютерный форум CyberForum.ru

Применение указателей - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
IvanInanovich
0 / 0 / 0
Регистрация: 03.01.2013
Сообщений: 113
22.04.2013, 02:50     Применение указателей #1
Доброй ночи. Встретил вот такое выражение в книге и не могу понять что к чему:
C++
1
Distance& dist = *(new Distance);
После чего можно обращаться к объекту через операцию точки, а не "->".

Disntace - класс. Операция new выделяет место равное объекту класса Distance и возвращает указатель на блок памяти, который выделили мы у операционной системы.
Не могу понять к чему там ссылка (знак амперсанда ) и к чему там операция разыменования. Каким образом оно работает?

Объясните пожалуйста саму схему данного выражения. Обязательно плюсану на спасибо. Благодарю.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 02:50     Применение указателей
Посмотрите здесь:

Массив из указателей на масив из указателей на массив из int) C++
применение указателей, структур и объединений C++
применение c++ C++
C++ Применение
C++ Применение итераторов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
22.04.2013, 17:18     Применение указателей #21
Цитата Сообщение от IvanInanovich Посмотреть сообщение
создаем ссылку, в которую ложем разыминованый указатель
глагол "ложить" совершенного вида.

Добавлено через 2 минуты
Цитата Сообщение от IvanInanovich Посмотреть сообщение
Ссылка есть ссылка, указатель есть указатель. Не могу понять каким образом ссылка видит и сохраняет в себе разыминованый указатель. Т.е. если бы указатель сохранял ссылку в себе - понятно. А наоборот в добавок операция розыминования - до меня не доходит.
ну очевидно же: в данном случае ссылка - синтаксическая надстройка над указателем, неявно разыменующая его при каждом обращении, а хранится адрес, как и в указателе.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.04.2013, 17:19     Применение указателей
Еще ссылки по теме:

Применение и удаление указателей C++
C++ Как обойтись без указателей и указателей на указатель?
C++ Применение ООП

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
IGPIGP
Комп_Оратор)
 Аватар для IGPIGP
6160 / 2889 / 282
Регистрация: 04.12.2011
Сообщений: 7,691
Записей в блоге: 3
22.04.2013, 17:19     Применение указателей #22
Цитата Сообщение от IvanInanovich Посмотреть сообщение
А наоборот в добавок операция розыминования - до меня не доходит.
Это просто и это ключ ко всему остальному. Разыменование указателя - процесс получения значения на которое он указывает:
C++
1
2
3
4
int a = 4;
int *ptr_a=&a;
int b=*ptr_a; //b=4 в b скопировано значение a
int &c=*ptr_a; //c ссылется на a так как ссылка на литерал 4 не имеет адреса и тут разыменование - доступ к переменной a
При удалении указателя (освобождении памяти) в Вашем примере образуется пустая ссылка dist. При выходе из области видимости она будет уничтожена. То есть главное до этого к ней уже не обращаться.
Yandex
Объявления
22.04.2013, 17:19     Применение указателей
Ответ Создать тему
Опции темы

Текущее время: 13:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru