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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.79
thick_int
Заблокирован
#1

Инициализация ссылок - C++

02.12.2011, 18:07. Просмотров 1770. Ответов 7
Метки нет (Все метки)

Непонятно почему такой синтаксис инициализации ссылок ошибочен:
C++
1
2
int * p(nullptr);
int * &pref(p);
Требуется вот так:
C++
1
2
int * p(nullptr);
int * (&pref)(p);
Можно было бы понять, что мол приоритет скобок выше чем ссылки, но тогда почему вот такой синтаксис вполне легален:
C++
1
2
int a = 4;
int &b(a);
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fasked
Эксперт C++
 Аватар для fasked
4929 / 2509 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.12.2011, 18:15     Инициализация ссылок #2
Цитата Сообщение от thick_int Посмотреть сообщение
int * &pref(p);
Я, честно говоря, тоже не понимаю, что эта запись может значить.
thick_int
Заблокирован
02.12.2011, 18:29  [ТС]     Инициализация ссылок #3
Это ссылка на указатель на тип int, которая инициализируется значением указателя p.
Проще это можно записать так:
C++
1
int * &pref = p;
silent_1991
Эксперт C++
4949 / 3025 / 149
Регистрация: 11.11.2009
Сообщений: 7,024
Завершенные тесты: 1
02.12.2011, 18:33     Инициализация ссылок #4
fasked, полагаю, объявление ссылки на указатель и попытка инициализировать её с помощью синтаксиса конструктора с параметром.

Добавлено через 3 минуты

Не по теме:

Опоздал...

fasked
Эксперт C++
 Аватар для fasked
4929 / 2509 / 180
Регистрация: 07.10.2009
Сообщений: 4,306
Записей в блоге: 1
02.12.2011, 18:36     Инициализация ссылок #5
http://liveworkspace.org/code/287ad7...fe561d78f339a1
thick_int
Заблокирован
02.12.2011, 18:43  [ТС]     Инициализация ссылок #6
И что это значит?
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
02.12.2011, 19:14     Инициализация ссылок #7
Цитата Сообщение от thick_int Посмотреть сообщение
Непонятно почему такой синтаксис инициализации ссылок ошибочен
Компилятор не может отличить создание переменной от прототипа функции. С ним такое бывает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 19:50     Инициализация ссылок
Еще ссылки по теме:

Инициализация int C++
C++ Инициализация класса
Инициализация C++
C++ Инициализация в private
C++ Инициализация строки

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

Или воспользуйтесь поиском по форуму:
thick_int
Заблокирован
02.12.2011, 19:50  [ТС]     Инициализация ссылок #8
Так я тоже обратил внимание на то, что в одном случае он отличает, а в другом нет.
Ну это, если принять ту точку зрения, что действительно имеет место путаница между инициализацией ссылки и прототипом функции.

А чтобы проверить это хотелось бы узнать, а есть ли в C++ такой тип, который вернуть из функции нельзя, но ссылку на который учредить можно?
Yandex
Объявления
02.12.2011, 19:50     Инициализация ссылок
Ответ Создать тему
Опции темы

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