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

Почему для обозначения ссылок используется именно символ &? - C++

Восстановить пароль Регистрация
 
ohos
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 9
09.07.2014, 21:21     Почему для обозначения ссылок используется именно символ &? #1
Почему для обозначения ссылок используется именно символ &, а не какой-то другой? Ведь сам по себе символ & является оператором получения адреса

C++
1
2
int a = 3;//&a тут & будет уже оператором получения адреса
int &b = a;// &b имя ссылки
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.07.2014, 21:21     Почему для обозначения ссылок используется именно символ &?
Посмотрите здесь:

Именно в каких ситуациях используется "virtual" ? C++
C++ Почему friend ostrem& operator <<(ostream& outs, const Rational&); - invalid function declaration?
Почему функция работает именно так? C++
Объясните почему не срабатывает И (&&) C++
C++ Почему именно С++?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
09.07.2014, 21:36
  #2

Не по теме:

Уважаемый ohos, Ваш вопрос перенаправлен на https://twitter.com/stroustrup, пожалуйста, ожидайте ответа.

Nick Alte
Эксперт С++
1591 / 983 / 116
Регистрация: 27.09.2009
Сообщений: 1,898
Завершенные тесты: 1
09.07.2014, 22:04     Почему для обозначения ссылок используется именно символ &? #3
Главная Вселенская Мудрость: "Всего на всех не хватает, потому что всех много, а всего мало". Спасибо Андрею Кнышеву за чеканную формулировку.
В данном случае символов не хватает на все операции, и приходится совмещать. Так что знаку & приходится работать оператором взятия адреса, модификатором ссылки и даже побитовым AND. Другим знакам тоже нелегко.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
09.07.2014, 23:27     Почему для обозначения ссылок используется именно символ &? #4
Небольшая вырезка из книги "Дизайн и эволюция C++" может быть прольёт свет на вопрос "почему":
Миниатюры
Почему для обозначения ссылок используется именно символ &?  
Renji
1535 / 983 / 241
Регистрация: 05.06.2014
Сообщений: 2,965
10.07.2014, 10:17     Почему для обозначения ссылок используется именно символ &? #5
В данном случае символов не хватает на все операции, и приходится совмещать.
#, @ и $ вроде как пока не использованы. И не станут создавать неоднозначности A&B в которой без контекста не поймешь то ли это переменную объявили, то ли поразрядное И выполнили.
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.07.2014, 10:29     Почему для обозначения ссылок используется именно символ &? #6
Цитата Сообщение от Renji Посмотреть сообщение
#
препроцессор
Цитата Сообщение от Renji Посмотреть сообщение
$
допускается в именах идентификаторов

Добавлено через 1 минуту
Цитата Сообщение от Renji Посмотреть сообщение
в которой без контекста не поймешь
А зачем требовать понимания без контекста? Главное, чтобы в контексте не было неоднозначностей.
Renji
1535 / 983 / 241
Регистрация: 05.06.2014
Сообщений: 2,965
10.07.2014, 10:40     Почему для обозначения ссылок используется именно символ &? #7
А зачем требовать понимания без контекста? Главное, чтобы в контексте не было неоднозначностей.
Затем, что в потрохах шаблона компилятор не видит весь контекст и начинает ругаться "или typename A&B, или я это читать не буду".
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
10.07.2014, 10:48     Почему для обозначения ссылок используется именно символ &? #8
Цитата Сообщение от Renji Посмотреть сообщение
"или typename A&B, или я это читать не буду".
Это Вас напрягает? Язык не совершенен, но вводить под каждую новую сущность свой оператор тоже не панацея. К тому же накладывается требование совместимости со старым кодом.
Renji
1535 / 983 / 241
Регистрация: 05.06.2014
Сообщений: 2,965
10.07.2014, 10:56     Почему для обозначения ссылок используется именно символ &? #9
Вообще да, это несколько раздражает. Не столько необходимостью подписывать ключевое слово, сколько неочевидностью грабель. Вне шаблона то тот же самый код будет работать и без typename.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.07.2014, 15:17     Почему для обозначения ссылок используется именно символ &?
Еще ссылки по теме:

Как проверить, принадлежит ли символ заданному диапазону m...n, кроме if (c <= n && c >= m) ? C++
Почему в выражении нельзя использовать запятую вместо && C++
C++ Почему именно C#?

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

Или воспользуйтесь поиском по форуму:
DrOffset
6462 / 3836 / 887
Регистрация: 30.01.2014
Сообщений: 6,631
10.07.2014, 15:17     Почему для обозначения ссылок используется именно символ &? #10
Цитата Сообщение от Renji Посмотреть сообщение
Вообще да, это несколько раздражает.
Дело привычки.
Yandex
Объявления
10.07.2014, 15:17     Почему для обозначения ссылок используется именно символ &?
Ответ Создать тему
Опции темы

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