Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.64/14: Рейтинг темы: голосов - 14, средняя оценка - 4.64
0 / 0 / 2
Регистрация: 03.01.2013
Сообщений: 113
1

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

22.04.2013, 02:50. Показов 2699. Ответов 21
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Доброй ночи. Встретил вот такое выражение в книге и не могу понять что к чему:
C++
1
Distance& dist = *(new Distance);
После чего можно обращаться к объекту через операцию точки, а не "->".

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

Объясните пожалуйста саму схему данного выражения. Обязательно плюсану на спасибо. Благодарю.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.04.2013, 02:50
Ответы с готовыми решениями:

Применение указателей
Добрый день, можно привести несколько примеров, где имеет смысл использовать указатели? Порой...

Применение и удаление указателей
Здравствуйте. Я не могу понять сути,когда нам нужно удалить указатель для освобождения памяти....

Применение указателей, структур и объединений
Здравствуйте, люди добрые!! (^_^)/ Очень нуждаюсь в вашей помощи... Помогите разобраться...

Почему в сортировке указателей на объекты в вызове функции используются адреса объектов, а не указателей?
Доброго времени суток! Рассматриваю пример (из Лафоре) сортировки массива указателей на объекты,...

21
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
22.04.2013, 17:18 21
Author24 — интернет-сервис помощи студентам
Цитата Сообщение от IvanInanovich Посмотреть сообщение
создаем ссылку, в которую ложем разыминованый указатель
глагол "ложить" совершенного вида.

Добавлено через 2 минуты
Цитата Сообщение от IvanInanovich Посмотреть сообщение
Ссылка есть ссылка, указатель есть указатель. Не могу понять каким образом ссылка видит и сохраняет в себе разыминованый указатель. Т.е. если бы указатель сохранял ссылку в себе - понятно. А наоборот в добавок операция розыминования - до меня не доходит.
ну очевидно же: в данном случае ссылка - синтаксическая надстройка над указателем, неявно разыменующая его при каждом обращении, а хранится адрес, как и в указателе.
0
Комп_Оратор)
Эксперт по математике/физике
8949 / 4703 / 629
Регистрация: 04.12.2011
Сообщений: 13,999
Записей в блоге: 16
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. При выходе из области видимости она будет уничтожена. То есть главное до этого к ней уже не обращаться.
1
22.04.2013, 17:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.04.2013, 17:19
Помогаю со студенческими работами здесь

Создать специфицированный шаблон функции, принимающей массив указателей на char и количество самих указателей
Задача: создать специфицированный шаблон функции, принимающей массив указателей на char и...

Объяснить различия в работе указателей на целое число и указателей на const char (строки в стиле Си)
Уважаемые программисты, возникло несколько вопросов касательно указателей. Почему при выводе...

Создать специализацию для шаблона, которая принимает массив указателей на строки и количество этих указателей
Нужно создать специализацию для шаблона, которая принимает массив указателей на строки и количество...

Различия указателей char* от указателей других типов
Помогите пожалуйста разобраться! Прочитал раздел про указатели и даже вроде бы понял. Что...


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

Или воспользуйтесь поиском по форуму:
22
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru