Каково было бы краткое определение ссылочной переменной в C++?
Первый абзац статьи Википедии может легко служить кратким определением:
В языке программирования C ++ ссылка - это простой ссылочный тип данных, который менее эффективен, но более безопасен, чем тип указателя. унаследовано от C.
И цитата из той же статьи:
Ссылки C ++ отличаются от указателей несколькими существенными способами:
Невозможно напрямую ссылаться на объект ссылки после того, как он определен; любое вхождение его имени относится непосредственно к объекту, на который он ссылается.
После того, как ссылка создана, она не может быть использована для ссылки на другой объект; его нельзя переустановить. Часто это делается с помощью указателей.
Ссылки не могут быть нулевыми, тогда как указатели могут; каждая ссылка относится к какому-либо объекту, хотя она может быть или недействительной.
Ссылки не могут быть неинициализированы. Поскольку повторно инициализировать ссылку невозможно, они должны быть инициализированы сразу после создания. В частности, локальные и глобальные переменные должны быть инициализированы там, где они определены, а ссылки, которые являются членами данных экземпляров класса, должны быть инициализированы в списке инициализаторов конструктора класса.
Дополнительная литература:
Это переменная, которая ссылается на другую:
int foo;
int& bar = foo;
bar
теперь является ссылкой, то есть bar
содержит расположение памяти, где foo
ложь.
См. здесь для получения дополнительной информации.
Ссылка - это объект, который является псевдонимом для другого объекта .
Ссылка не является переменной , поскольку переменная вводится только при объявлении объекта . Объект - это область хранения, и в C ++ ссылки (не обязательно) занимают какое-либо хранилище.
Поскольку объекты и ссылки представляют собой отдельные группы сущностей в C ++, термин «ссылочная переменная» не имеет смысла.
Ссылочная переменная - это псевдоним (альтернативное имя) для объекта . [Из FAQ по C ++].
Ссылочные переменные позволяют двум именам переменных обращаться к одному и тому же месту в памяти:
int main()
{
int var1;
// var2 is a reference variable, holds same value as var1
int &var2 = var1;
var1 = 10;
std::cout << "var1 = " << var1 << std::endl;
std::cout << "var2 = " << var2 << std::endl;
}
Ресурс: ССЫЛКА