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

Ссылки и указатели - в чем преимущество одного над другим - C++

Восстановить пароль Регистрация
 
Kuzia domovenok
 Аватар для Kuzia domovenok
1886 / 1741 / 117
Регистрация: 25.03.2012
Сообщений: 5,910
Записей в блоге: 1
29.01.2014, 18:43     Ссылки и указатели - в чем преимущество одного над другим #1
Известно, что главной причиной появления ссылок в С++ было дать более безопасную альтернативу указателям в некоторых ситуациях. Ссылка в отличие от указателя обязана быть всегда инициализирована, а указатель можно не только забыть инициализировать но и уже инициализированный затереть, например. Преимущество очевидно? Но всегда ли ссылки инициализированы? Что будет с этим кодом?
C++
1
2
3
int* p=NULL;
int& ref=*p;
ref=1337;
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.01.2014, 18:43     Ссылки и указатели - в чем преимущество одного над другим
Посмотрите здесь:

В чем преимущество рекурсивных функций? C++
Указатели и Ссылки C++
C++ В чем преимущество использования Pimpl?
C++ Указатели и ссылки
Указатели и ссылки C++
Указатели и ссылки C++
Указатели и действия над указателями C++
C++ Память. Стек или куча - есть ли преимущества одного кода над другим?
C++ Статическая и динамическая линковка - в чем преимущество каждой?
C++ Ссылки vs указатели - в чем разница?
В чем преимущество объявления прототипов классов в хедере? C++
C++ В чем преимущество list над вектором?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
daslex
1088 / 498 / 102
Регистрация: 02.08.2011
Сообщений: 2,449
29.01.2014, 18:51     Ссылки и указатели - в чем преимущество одного над другим #2
оттого, что вы инициализировали ссылку указателем в никуда, правило
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ссылка в отличие от указателя обязана быть всегда инициализирована
не отменяется.

Не по теме:


проблема не в ссылке, а указателе и не надо стрелки переводить

0x10
2437 / 1609 / 235
Регистрация: 24.11.2012
Сообщений: 3,949
29.01.2014, 18:58     Ссылки и указатели - в чем преимущество одного над другим #3
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Стрелять, так стрелять (по сути то же самое)
C++
1
2
3
4
5
int main()
{
    int& a = *static_cast<int*>(NULL);
    a = 0x10;
}
zelim
77 / 77 / 4
Регистрация: 26.12.2011
Сообщений: 217
30.01.2014, 01:58     Ссылки и указатели - в чем преимущество одного над другим #4
0x10, И снова всё то же самое правило.
Стивен Дьюхерст писал: "Ссылки - это псевдонимы, а не указатели" ("Священные знания C++", глава 5, если не изменяет память).
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
12080 / 6941 / 782
Регистрация: 27.09.2012
Сообщений: 17,227
Записей в блоге: 2
Завершенные тесты: 1
30.01.2014, 05:12     Ссылки и указатели - в чем преимущество одного над другим #5
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Но всегда ли ссылки инициализированы?
Всегда, но никто не говорил, что ссылки должны быть всегда валидны.
C++
1
2
3
int & ref = * new int ;
delete &ref ;
ref = 123 ;
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Преимущество очевидно?
видите, чтобы сделать ошибку надо уже шаманить понемногу
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Что будет с этим кодом?
Да нет ничего, упадет скорее всего и всё.
Yandex
Объявления
30.01.2014, 05:12     Ссылки и указатели - в чем преимущество одного над другим
Ответ Создать тему

Метки
инициализации, ошибка, ссылки, указатель
Опции темы

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