21 июня 2015 г.

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

Раз ссылка является другим именем уже существующего объекта,
то в качестве инициализирующего объекта должно выступать имя некоторого объекта,
уже расположенного в памяти.Значением ссылки после выполнения соответствующего определения
с инициализацией становится адрес этого объекта.

#include <iostream>
using namespace std;
void main()
{
int ivar = 1234; //Переменной присвоено значение.
int *iptr = &ivar; //Указателю присвоен адрес ivar.
int &iref = ivar; //Ссылка ассоциирована с ivar.
int *p = &iref; //Указателю присвоен адрес iref.

cout << "ivar = " << ivar << "\n";
cout << "*iptr = " << *iptr << "\n";
cout << "iref = " << iref << "\n";
cout << "*p = " << *p << "\n";
}


Замечания.

1. В отличие от указателей, которые могут быть объявлены неинициализированными или установлены в нуль(NULL), ссылки всегда ссылаются на объект.Для ссылок ОБЯЗАТЕЛЬНА инициализация при создании и не существует аналога нулевого указателя.
2. Ссылки нельзя инициализировать в следующих случаях :
при использовании в качестве параметров функции.
при использовании в качестве типа возвращаемого значения функции.
в объявлениях классов.
3. Не существует операторов, непосредственно производящих действия над ссылками!

Комментариев нет:

Отправить комментарий