Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.03.2011, 07:15   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
Вопрос Объявление ссылочных переменных

Вот такой вот простой вопрос.
Мне нужно объявить ссылочную переменную, при объяалении я делаю так:
Код:
void myFn()
{
    int n1 = 5;
    int& nRef = n1; // теперь nRef содержит ссылку на n1
    nRef = 10;       // сохраняем по ссылке значение 10
}
А вот теперь, если мне нужно запихать в nRef ссылку на другую переменную, как нужно делать? Так?
Код:
void myFn()
{
    int n1 = 5;
    int& nRef = n1; // теперь nRef содержит ссылку на n1
    nRef = 10;       // сохраняем по ссылке значение 10
    int n2 = 14;
    nRef = n2;   // Верно или нет?
}
_-Re@l-_ вне форума Ответить с цитированием
Старый 13.03.2011, 09:45   #2
Katmai
Пользователь
 
Регистрация: 21.07.2010
Сообщений: 25
По умолчанию

n1 будет иметь значение n2, то есть 14.
nRef - содержит фиксированный адрес и его нельзя изменить.
Katmai вне форума Ответить с цитированием
Старый 13.03.2011, 10:06   #3
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Чё прям совсем никак? А если надо? А указатели не хочу использовать?
_-Re@l-_ вне форума Ответить с цитированием
Старый 13.03.2011, 12:13   #4
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

_-Re@l-_ если nRef ссылается на переменную, эту ссылку нельзя перевести на другую переменную. Это особенность ссылок. Советую тогда посмотреть в сторону указателей.

Последний раз редактировалось profi; 13.03.2011 в 12:22.
profi вне форума Ответить с цитированием
Старый 13.03.2011, 13:36   #5
alex_x_x
Форумчанин
 
Регистрация: 31.01.2011
Сообщений: 160
По умолчанию

ссылка есть разыменованный константный указатель, отсюда и выводы
alex_x_x вне форума Ответить с цитированием
Старый 14.03.2011, 12:32   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Чё прям совсем никак? А если надо? А указатели не хочу использовать?
Никак.
Цитата:
ссылка есть разыменованный константный указатель, отсюда и выводы
Цитата:
Очевидной реализацией ссылки является (константный) указатель, при каждом использовании которого происходит разыменование. Большого вреда в такой интерпретации нет, но при этом надо помнить, что ссылка, в отличие от указателя, не является объектом, над которым можно выполнять операции. В некоторых случаях компилятор может оптимизировать ссылку таким образом, что во время исполнения вообще не будет существовать объекта, представляющего ссылку.
(ц) Страуструп.
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объявление переменных Hemul Общие вопросы C/C++ 11 06.02.2011 16:37
алгоритм search, поиск в векторе ссылочных переменных the_deer_one Общие вопросы C/C++ 13 04.09.2010 21:10
Правильное объявление глобальных переменных voam Microsoft Office Excel 5 14.05.2010 14:25
Как вынести объявление переменных в отдельный сегмент кода boris-blade Microsoft Office Word 1 16.01.2010 19:31
Объявление переменных на ВЕСЬ проект Alex Cones Общие вопросы Delphi 8 25.04.2009 22:09