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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
ohos
0 / 0 / 0
Регистрация: 02.12.2010
Сообщений: 9
#1

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

09.07.2014, 21:21. Просмотров 390. Ответов 9
Метки нет (Все метки)

Почему для обозначения ссылок используется именно символ &, а не какой-то другой? Ведь сам по себе символ & является оператором получения адреса

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     Почему для обозначения ссылок используется именно символ &?
Посмотрите здесь:

Почему в С++ это сделано именно так? Объяснение для НЕ программиста - C++
В этой теме хотелось бы задавать "тупые" вопросы по С++ и получить ответы и объяснения на нормальном человеческом языке, понятном НЕ...

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

Именно в каких ситуациях используется "virtual" ? - C++
Привет всем. Я знаю, что с помощью virtual происходит полиморфизм. Но кто может показать еффективность ее (virtual) использования? ...

Почему именно С++? - C++
Всем привет. Кто может объяснить, почему везде востребованы программисты С++? Как эти программисты пишут оконные приложения, если все...

Почему именно C#? - C++
В конечном итоге нужно программировать на 1С, но так как репетитора по 1С найти не реально, решила изучить какой-нибудь-любой язык ООП, в...

Почему используется printf, а не cout? - C++
#include <iostream.h> void main() { printf("hello world"); } почему void main() а не main(),почему printf а не cout...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kastaneda
09.07.2014, 21:36
  #2

Не по теме:

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

Nick Alte
Эксперт С++
1608 / 1000 / 118
Регистрация: 27.09.2009
Сообщений: 1,930
Завершенные тесты: 1
09.07.2014, 22:04     Почему для обозначения ссылок используется именно символ &? #3
Главная Вселенская Мудрость: "Всего на всех не хватает, потому что всех много, а всего мало". Спасибо Андрею Кнышеву за чеканную формулировку.
В данном случае символов не хватает на все операции, и приходится совмещать. Так что знаку & приходится работать оператором взятия адреса, модификатором ссылки и даже побитовым AND. Другим знакам тоже нелегко.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
09.07.2014, 23:27     Почему для обозначения ссылок используется именно символ &? #4
Небольшая вырезка из книги "Дизайн и эволюция C++" может быть прольёт свет на вопрос "почему":
Миниатюры
Почему для обозначения ссылок используется именно символ &?  
Renji
1876 / 1274 / 290
Регистрация: 05.06.2014
Сообщений: 3,636
10.07.2014, 10:17     Почему для обозначения ссылок используется именно символ &? #5
В данном случае символов не хватает на все операции, и приходится совмещать.
#, @ и $ вроде как пока не использованы. И не станут создавать неоднозначности A&B в которой без контекста не поймешь то ли это переменную объявили, то ли поразрядное И выполнили.
Tulosba
:)
Эксперт С++
4393 / 3236 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
10.07.2014, 10:29     Почему для обозначения ссылок используется именно символ &? #6
Цитата Сообщение от Renji Посмотреть сообщение
#
препроцессор
Цитата Сообщение от Renji Посмотреть сообщение
$
допускается в именах идентификаторов

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

Обращение к массиву структур, почему именно так? - C++
Почему в не которых функциях к елементам структуры обращаются *invtry , а в других просто invtry? #include <stdafx.h> #include...

Указатели. Почему именно так инициализируются в даном случае? - C++
Не могу понять, почему при инициализации *p мы берем по ссылке, а при *p2 просто присваивание? #include <iostream> using namespace std;...

Почему скомпилированный код выдал именно эти символы, а не другие? - C++
#include <iostream> using namespace std; class cls { protected: char c; public: cls() :c('A') { cout<<'A';...

почему именно сортировка очень важна при организации обработки информации - C++
почему именно сортировка очень важна при организации обработки информации?


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

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

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