Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Відповіді на питання по мові С++по лекціям.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
265.22 Кб
Скачать
  1. Створення структури.

Структура – це більш багатостороння форма даних, чим масив, тому що вона здатна зберігати елементи більш чим одного типу. Тип структури – це ще один крок до ООП С++ - класу. Структура – це визначений користувачем тип з об’явою, яка описує властивості типа. Після визначення типу, можна створити змінну цього типу. Створення структури – це двофазний процес. По-перше, визначається опис структури, яка перераховує і іменує типи даних, котрі можуть бути збережені у структурі, Потім створюються структурні змінні або, як кажуть інакше, структурні об’єкти даних, котрі слідують плану, який заданий об’явою

  1. Надати приклад опису структури. Поясніть приклад.

Приклад опису структури:

struct inflatable //об’ява структури

{

char name [20];

float volume; члени структури

double price;

};

Ключове слово struct вказує на те, що цій код визначає план структури. Ідентифікатор inflatable – ім’я або дескриптор цієї фірми, тобто ім’я нового типу. У цьому прикладі застосовується масив char, який застосовується для збереження рядка. Потім елементи типів float і double.

Після об’яви шаблону, можна створити змінні цього типу.

inflatable hat; // hat – структурна змінна типу inflatable

inflatable woopie_cushion; //змінна типу inflatable

inflatable mainframe; //змінна типу inflatable

Імена членів дозволяють посилання на члени структур. Наприклад, hat.volume посилається на член структури по імені volume, а hat.price – на член по імені price. Оскільки член price об’явлений як double, hat.price і hat.volume обидві є еквівалентними змінної типу double.

ЛЕКЦІЯ 8

  1. Об’ява функції main ().

Об’ява всередині функції main () – має назву локальне оголошення, а коли зовні функції main () – має назву зовнішнім оголошенням.

  1. Ініціалізація структур членами типа клас string.

Можна об’явити структуру таким чином:

#include <string>

struct inflatable //шаблон структури

{

std::string name;

float volume;

double price;

};

Можна, але на практиці це залежить від вашого компілятора. Компілятори Borland C++ 5.5 та Microsoft Visual C++ до версії 7.1 не підтримують ініціалізацію структур членами типа клас string. Коли компілятор підтримує використання string, то забезпечте, щоб визначення структури мало доступ до простору імен std. Це можна зробити, розміщуючи директиві using таким чином, щоб вона була зверху визначення структури. В якості альтернативи можна об’явити тип name як std::string.

  1. Користувацькі типи.

С++ робить користувацькі типи схожими на вбудовані типи. Наприклад, можна передавати структуру в якості аргументу функції, або функція може використовувати структуру в якості значення, що повертається, або можна використовувати операцію присвоєння (=), щоб присвоїти структуру іншої, але того ж самого типу. Остання операція встановлює значення кожного члена однієї структури рівним відповідно кожному члену іншої структури, коли член є масивом. Такий тип присвоєння має назву по членного присвоєння.

  1. Як включається масив до структури?

Структура inflatable включає до себе масив (член name). Також можна створити масиви,чиї елементи є структурами. Щоб створити масив із 100 структур inflatable

inflatable gifts [100]; //масив із 100 структур inflatable

Це робить gifts масивом структури inflatable та може бути застосовний з операцією членства. Оскільки кожний елемент масиву є структурою, то його значення представляється ініціалізацією структури. Таким чином отримуємо наступну конструкцію:

inflatable guest [2] = // ініціалізація масиву структур

{

{“Bambi”, 0.5, 21.99} //перша структура у масиві

{“Godzilla”, 2000, 565.99} //наступна структура у масиві

};

  1. Як робиться об'єднання даних?

Об'єднання – це формат даних, котрий може зберігати різні типи даних у межах однієї області пам’яті, але кожну одиницю часу тільки один з них. Синтаксис об'єднання відрізняється від синтаксису структур. Наприклад, можна використовувати змінну one4all для збереження int, long, double, коли робите це не одночасно:

one4all pail; //змінна one4all для збереження

pail.int_val =15; // зберегти int

cout << pail.int_val;

pail.int_val =1.38; // зберегти double, int втрачено

cout << pail.int_val;

Розмір об'єднання визначається розміром його найбільшого члена. Причиною застосування об'єднання може бути потреба скоротити об’єм пам’яті, коли елемент даних може використовувати два або більш форматів, але ніколи одночасно.

Анонімні об’єднання не мають імен. Їх члени становляться змінними, які розташовані по одному адресу у пам’яті. Природно, що тільки одна з них може бути поточною у одиницю часу.