Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ob_yektno-oriyentovani_metodi_programuvannya.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
2.21 Mб
Скачать

Передача аргументів за посиланням

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

9. Вказівники і посилання в С++. Передача параметрів за допомогою вказівників і посилань.

Вказівник - це символічне представлення адреси. Він використовується для непрямої адресації змінних і об'єктів.

В

Наприклад, створити масив типу Person можна так:

person *student = new person[5] або person student[5]

мові С++ є операція визначення адреси — &, за допомогою якої визначається адреса комірки пам’яті, що містить задану змінну. Наприклад, якщо vr — ім’я змінної, то &vr — адреса цієї змінної.

В С++ також існують і змінні типу вказівник. Значенням змінної типу вказівник є адреса змінної або об'єкта. Нехай змінна типу вказівник має ім'я ptr, тоді в якості значення їй можна присвоїти адресу за допомогою наступного оператора:

ptr=&vr;

В

Звернутися до поля (наприклад name) деякого k-го елемента массиву student можна так: student[k].name

мові С++ при роботі з вказівниками велике значення має операція непрямої адресації — *. Операція * дозволяє звертатися до змінної не напряму, а через вказівник, який містить адресу цієї змінної. Ця операція є одномісною і має асоціативність зліва направо. Цю операцію не слід плутати з бінарною операцією множення. Нехай ptr — вказівник, тоді *ptr — це значення змінної, на яку вказує ptr.

Опис змінних типу вказівник здійснюється за допомогою операторів наступної форми:

<тип> *<ім'я вказівника на змінну заданого типу>;

Посилання (reference) являє собою видозмінену форму вказівника, яка використовується в якості псевдоніму (другого імені) змінної. У зв’язку з цим посилання не потребують додаткової пам’яті. Для визначення посилання використовують символ & (амперсант), який ставиться перед змінною-посиланням.

Змінні типу посилання можуть використовуватися в наступних цілях:

• замість передачі у функцію об’єкта за значенням;

• для визначення конструктора копії;

• для перевантаження унарних операцій;

Функції можна передати вказівник на аргумент. Передача вказівника відбувається традиційно, тобто у функції створюється копія вказівника на аргумент

Ще один механізм заснований на застосуванні посилань. Для цього перед ім'ям аргументу в прототипі функції і її заголовку (вони завжди повинні збігатися!) слід поставити оператор узяття адреси. Такий прототип буде означати, що аргумент передається за посиланням, хоча визначення функції зовсім не відрізняється від передачі за значенням (ніяких розіменувань не потрібно).

10. Структури С++. Доступ до членів структур. Масиви і структури всередині структур. Передача членів і цілих структур функціям. Вказівники на структури. Доступ до елементів структури через вказівники.

На практиці приходиться мати справу з даними, які складаються з інших даних. Наприклад, інформація про учня містить: прізвище, ім’я, по-батькові, дату народження, адресу, та іншу інформацію. Така інформація складається з даних різних типів. Ці дані називають полями. Сукупність полів з різнотипних даних являє собою структуру.

ОПИС СТРУКТУРИ.

Опис структури має вигляд: Наприклад

Struct <назва типу структури>

{

<тип поля1> <назва поля1>;

<тип поля2> <назва поля2>;

……………….

<тип поляN> <назва поляN>;

}

Struct person

{

char fam[15]; // прізвище (масив з 15 символів)

char name[15]; // ім’я (масив з 15 символів)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]