Урок №93. Посилання і const

  Юрій  | 

  Оновл. 13 Січ 2021  | 

 184

Так само, як можна оголосити вказівник на константне значення, так само можна оголосити і посилання на константне значення в мові С++.

Посилання на константні значення

Оголосити посилання на константне значення можна шляхом додання ключового слова const перед типом даних:

Посилання на константні значення часто називають просто «посиланнями на константи» або «константні посилання».

Ініціалізація посилань на константи

На відміну від посилань на неконстантні значення, які можуть бути ініціалізовані лише неконстантними l-values, посилання на константні значення можуть бути ініціалізовані неконстантними l-values, константними l-values і r-values:

Як і у випадку з вказівниками, константні посилання також можуть посилатися і на неконстантні змінні. При доступі до значення через константне посилання, це значення автоматично вважається const, навіть якщо вихідна змінна не є такою:

Посилання r-values

Зазвичай r-values мають область видимості виразу, що означає, що вони знищуються в кінці виразу, в якому створені:

Проте, коли константне посилання ініціалізується значенням r-value, час життя r-value продовжується відповідно до часу життя посилання:

Константні посилання в якості параметрів функції

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

Посилання на константні значення особливо корисні в якості параметрів функції через їх універсальність. Константне посилання в якості параметра дозволяє передавати неконстантний аргумент l-value, константний аргумент l-value, літерал або результат виразу:

Результат виконання програми:

3457

Щоб уникнути непотрібного, занадто витратного копіювання аргументів, змінні, які не є фундаментальних типів даних (типів int, double і т.д.) або вказівниками, — повинні передаватися по (константному) посиланню в функцію. Фундаментальні типи даних повинні передаватися по значенню у випадку, якщо функція не змінюватиме їх значень.

Правило: Змінні не фундаментальних типів даних і які не є вказівниками, передавайте в функцію по (константному) посиланню.

Оцінити статтю:

1 Зірка2 Зірки3 Зірки4 Зірки5 Зірок (3 оцінок, середня: 5,00 з 5)
Loading...

Залишити відповідь

Ваш E-mail не буде опублікований. Обов'язкові поля відмічені *