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

Указатель и ссылка - C++

Восстановить пароль Регистрация
 
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
29.04.2012, 11:36     Указатель и ссылка #1
В общем вопрос достаточно простой, в чём разница указателя и сылки?
С одной стороны указатель это отдельный тип, отдельная ячейка в памяти, и при передаче параметра по указателю передается адрес обьекта, но с другой стороны сылка почти тоже самое? Она просто передает адрес обьекта в функцию. Хотелось бы узнать в чём разница (на уровне памяти).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.04.2012, 11:36     Указатель и ссылка
Посмотрите здесь:

C++ ссылка на функцию класса(!не указатель!)
C++ Ссылка на указатель
C++ ссылка на указатель
C++ Указатель и ссылка
Указатель и ссылка C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
29.04.2012, 11:44     Указатель и ссылка #2
Цитата Сообщение от OrmaJever Посмотреть сообщение
в чём разница (на уровне памяти)
на уровне памяти разницы нет
Bers
Заблокирован
29.04.2012, 11:45     Указатель и ссылка #3
нету разницы.

Ссылка - тот же самый указатель, только её нельзя перенаправить на другой объект..
bz_
6 / 6 / 1
Регистрация: 10.04.2012
Сообщений: 31
29.04.2012, 11:48     Указатель и ссылка #4
Ссылка лишь является разыменованным указателем. Но есть ситуации, когда предпотительнее использовать либо то, либо это.
vladislavchick
35 / 35 / 1
Регистрация: 22.05.2010
Сообщений: 107
29.04.2012, 12:45     Указатель и ссылка #5
Ссылка - тот же указатель, только автоматически разыменовываемый при обращении и связываемый с объектом лишь единожды.
OrmaJever
 Аватар для OrmaJever
9 / 9 / 0
Регистрация: 10.11.2011
Сообщений: 241
29.04.2012, 13:23  [ТС]     Указатель и ссылка #6
3 коментария об одном и том же)))
Я частенько пишу на qt, и вот там некоторые методы возвращают указатель, а некоторые ссылку, наверно есть на то причина?

Добавлено через 4 минуты
Заметил что все методы которые возвращают сылку помечены как константные и возвращают константную сылку, но разве нельзя вернуть константный указатель?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2012, 15:15     Указатель и ссылка
Еще ссылки по теме:

Указатель или ссылка на указатель. В чем разница? C++
C++ Ссылка на указатель
C++ Ссылка на указатель на указатель

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

Или воспользуйтесь поиском по форуму:
Bers
Заблокирован
29.04.2012, 15:15     Указатель и ссылка #7
Цитата Сообщение от OrmaJever Посмотреть сообщение
Заметил что все методы которые возвращают сылку помечены как константные и возвращают константную сылку, но разве нельзя вернуть константный указатель?
Присутствует идеологический смысл:

C++
1
2
3
//допускает, что аргументом может быть "ничего"
void foo(void* ptr0, void* ptr1, void* ptr2);
foo(null,null,null); //правомерно
C++
1
2
3
4
//хочет получать на входе только реальные объекты
void foo(CSome& agent0, CSome& agent1, CSome& agent2); 
 
foo(null,null,null); //сделать уже не получится
Работа с ссылками - это всегда работа с реальными объектами.
Работа с указателями - это работа с какими то адресами, но не с объектами. А именно с адресами.
Yandex
Объявления
29.04.2012, 15:15     Указатель и ссылка
Ответ Создать тему
Опции темы

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