Добавил:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
2
Добавлен:
31.01.2021
Размер:
6.94 Кб
Скачать

Інформатика — Теорія — Анонімне об'єднання    Автори

|

Контакти

|

Підсистема допомоги

|

Методичні вказівки

|

Анотація

|

Назад

   ІнформатикаОб'єднання : Анонімне об'єднанняЗміст курсу

Вступ

Теорія

Застосування об'єднань

Анонімне об'єднання

Висновки

Версія для друку

  Анонімне об'єднання      Анонімне об'єднання являє собою об'єднання, у якого немає ім'я. C++ надає анонімні об'єднання, щоб спростити використання елементів об'єднань, призначених для економії пам'яті або створення псевдонімів для певного значення. Наприклад, припустимо, що в програмі потрібні дві змінні miles і meters. Крім того, припустимо, що програма використовує тільки одну з них в кожний даний момент часу. У цьому випадку програма могла б використовувати елементи об'єднання, подібного об'єднанню distance, а саме name.miles і name.meters. Наступний оператор створює анонімне (безіменне) об'єднання:

union

{

     int miles;

     long meters;

};.

     Оголошення не використовує ім'я об'єднання й не повідомляє змінну об'єднання. Програма, у свою чергу, може звертатися до елементів з іменами miles і meters без допомоги крапки.

Приклад 1. Наступна програма створює анонімне об'єднання, що містить елементи miles і meters. Програма трактує елементи як звичайні змінні. Однак розходження між елементами й звичайними змінними полягає в тому, що, коли ви привласнюєте значення кожному із цих елементів, значення іншого елемента губиться.

#include <iostream.h>

void main()

{

     union

     {

          int miles;

          long meters;

     };

     miles = 10000;

     cout << "Значення в милях " << miles << endl;

     meters = 150000;cout << "Значення в метрах " << meters << endl;

}

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

 © 2008 ХНУРЭ, Інформатики, Сінельнікова Т.Ф., informatika@kture.Kharkov.uaРозроблено за допомогою LERSUS

Соседние файлы в папке content