С++ содержит несколько составных типов, одним из которых являются ссылки. Ссылка - это альтернативное имя объекта. В определении ссылочного типа используется оператор в форме &имя

int count = 5;
int &refCount = count; //refCount ссылается на count

При создании ссылку необходимо обязательно инициализировать.

int &refCount; //ошибка - ссылка ни к чему не привязана

После того как ссылка определена, все операции с ней будут осуществляться с объектом, с которым связана ссылка.

refCount = 0; // присваивает 0 объекту count

Поскольку ссылка - не объект, нельзя определить ссылку на ссылку.

Ссылки должны иметь тот же тип, что и объект на который она ссылается.

#include <iostream>
using namespace std;

int main()
{ 
 setlocale(LC_ALL, "Russian"); 
 int num1 = 10;
 int &ref1 = num1;
 //амперсанд & можно также указывать возле типа данных
 int& ref2 = num1;
 cout << "Переменная num1 содержит: " << num1
 << "\nСсылка ref1 содержит: " << ref1
 << "\nСсылка ref2 содержит: " << ref2
 << "\nАдреса num1, ref1, ref2: " 
 << &num1 << " " << &ref1 << " " << &ref2 << endl;
 return 0;
}

Результат программы:

Переменная num1 содержит: 10
Ссылка ref1 содержит: 10
Ссылка ref2 содержит: 10
Адреса num1, ref1, ref2: 0x78335e91c40c 0x78335e91c40c 0x78335e91c40c

Как можно убедиться, все три значения ссылаются на один и тот же адрес.


 Похожие публикации
2016-01-31 • Просмотров [ 175 ]