Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Оголошення посилання






Посилання C + + являє собою псевдонім (друге ім'я), яке ваші програми можуть використовувати для звернення до змінної. Для оголошення посилання поставте амперсанд (&) відразу ж після типу змінної, а потім вкажіть ім'я посилання, за яким слідує знак рівності і ім'я змінної, для якої посилання є псевдонімом:

float & salary_alias = salary;

 

ВИКОРИСТАННЯ ПОСИЛАНЬ В ЯКОСТІ ПАРАМЕТРІВ

Основне призначення посилання полягає в спрощенні процесу зміни параметрів всередині функції. Наступна програма REFERENC.CPP присвоює посилання з ім'ям n змінної nu. Програма передає посилання на змінну в функцію change_value, яка присвоює змінній значення 1001:

 

# Include < iostream.h>

 

void change_value (int & alias)

 

{

alias = 1001;

}

 

void main (void)

 

{

int number;

int & number_alias = number;

change_value (number_alias);

out < < " Змінна number містить" < < number < < endl;

}

 

Як ви бачите, програма передає заслання у функцію change_value. Якщо ви розглянете оголошення функції, ви виявите, що change_value оголошує параметр alias як посилання на значення типу int.

 

void change_value (int & alias)

 

Усередині функції change_value можете змінювати значення параметра без допомоги покажчика. В результаті зірочка (*) не використовується і операція усередині функції стає легше для розуміння.

 

Використання коментарів для пояснення посилань усередині ваших програм

 

Більшість програмістів C + + знайомі з мовою програмування С, і вони звикли використовувати покажчики всередині функції, якщо необхідно змінити значення параметра. У результаті, якщо такі програмісти не бачать покажчики всередині функцій, які використовують посилання, вони можуть припустити, що значення параметрів не змінюються. Для запобігання подібних промахів не забувайте розміщувати кілька коментарів до і всередині функцій, які змінюють параметри за допомогою посилань. У такому випадку програмісти С краще зрозуміють роботу ваших функцій.



Розглянемо другий приклад

В уроці 10 ви використовували наступну функцію для перестановки двох значень з плаваючою точкою:

 

void swap_values ​ ​ (float * a, float * b)

 

{

float temp;

temp = * a;

* A = * b;

* B = temp;

}

 

Як бачите, функція комбінує змінні-вказівники з перемінними-неуказателямі. Наступна програма SWAP_REF.CPP використовує посилання на значення з плаваючою точкою для спрощення функції:

 

# Include < iostream.h>

 

void swap_values ​ ​ (float & a, float & b)

{Float temp;

temp = a;

a = b;

b = temp;

}

 

void main (void)

 

{Float big = 10000.0;

float small = 0.00001;

float & big_alias = big;

float & small_alias = small;

swap_values ​ ​ (big_alias, small_alias);

cout < < " Big містить" < < big < < endl;

cout < < " Small містить" < < small < < endl;

}

 

Як бачите, функцію swap_values ​ ​ зараз легше зрозуміти, однак ваша програма має тепер два додаткових імені (посилання big_alias і small_alias), за якими ви повинні стежити.

 

ПРАВИЛА РОБОТИ СО ПОСИЛАННЯМИ

Посилання не є змінною. Один раз присвоївши значення посиланню, ви вже не можете її змінити. Крім того на відміну від покажчиків ви не можете виконати наступні операції над посиланнями:

 

• Ви не можете отримати адресу посилання, використовуючи оператор адреси C + +.

 

• Ви не можете привласнити посиланню покажчик.

 

• Ви не можете порівняти значення посилань, використовуючи оператори порівняння C + +.

 

• Ви не можете виконати арифметичні операції над посиланням, наприклад додати зсув.

 

• Ви не можете змінити посилання.

 

У міру використання об'єктно-орієнтованого програмування на C + + ви повернетеся до посилань.

 

Використання посилань для зміни параметрів функції

 

З уроку 10 ви дізналися, що ваші програми за допомогою покажчиків можуть змінювати значення параметрів всередині функції. Для зміни параметра ви повинні передати його адресу в функцію. Щоб отримати адресу параметра, використовуйте оператор адреси C + + (&). У свою чергу функція використовує змінні-вказівники (які зберігають адресу пам'яті). Для оголошення змінної-покажчика всередині функції випереджається ім'я параметра зірочкою (*). Щоб змінити або використовувати значення параметра усередині функції, що випереджають кожне звернення до імені цього параметра оператором разименованія C + + (*). На жаль, багато операцій усередині функції комбінують змінні-вказівники і змінні-неуказателі.

Посилання C + + спрощують процес зміни параметрів функції, позбавляючи від операторів, які змішують змінні-вказівники і змінні-неуказателі.

 

ЧТ0 ВАМ НЕОБХІДНО ЗНАТИ

З цього уроку ви дізналися, як використовувати посилання C + + для створення псевдоніма або другого імені змінної. Використання посилань може спростити функції, що змінюють значення параметрів. З уроку 15 ви дізнаєтеся, що C + + дозволяє вам задавати значення за замовчуванням для параметрів функції. При виклику функції програма може опускати значення одного або кількох параметрів і функція буде використовувати значення за замовчуванням. До вивчення уроку 15 переконайтеся, що ви освоїли такі основні концепції:

 

Посилання C + + є псевдонімом (або другим ім'ям) змінної.

Для оголошення посилання помістіть знак амперсанда (&) безпосередньо після типу змінної, а потім вкажіть ім'я посилання, за яким слідує знак рівності і ім'я змінної, для якої посилання є псевдонімом.

Якщо ви одного разу привласнили посиланню значення, ви не можете його змінити.

Вам слід поміщати кілька коментарів до і всередині функцій, які використовують посилання для зміни значень параметра, щоб інші програмісти, читають ваш код, відразу звернули, на це увагу.

Надмірне використання посилань може призвести до занадто важкого для розуміння програмного коду.

 

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.