Розділ №4. Підсумковий тест

  Юрій  | 

  Оновл. 17 Чер 2020  | 

 106

У цьому розділі ми розглянули багато матеріалу. Якщо ви дійшли до цього моменту, то я вас вітаю — ви пройшли досить чимало і це вже хороший крок на шляху до вивчення C++ і взагалі програмування! Зараз же давайте закріпимо пройдений матеріал.

Зміст:

Теорія

Блок стейтментів опрацьовується компілятором так, наче це один стейтмент. Блоки стейтментів розміщуються в фігурних дужках — { і }, і використовуються майже всюди.

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

Глобальні змінні створюються, коли програма запускається, і знищуються, коли вона завершує своє виконання. Вони можуть використовуватися в будь-якому місці програми. Неконстантні глобальні змінні слід уникати, бо це — зло.

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

Простір імен — це область, в якій гарантується унікальність всіх імен. Відмінний спосіб уникнути конфліктів імен. Не використовуйте стейтменти using поза тілом функцій.

Неявна конвертація типів даних відбувається, коли один тип даних конвертується в інший тип без використання одного з операторів конвертації. Явна конвертація типу відбувається, коли один тип даних конвертується в інший за допомогою одного з операторів конвертації. У деяких випадках це абсолютно безпечно, а в деяких — може відбутися втрата даних. Уникайте використання конвертації C-style, замість неї використовуйте оператор static_cast.

std::string — це простий спосіб роботи з текстовими рядками (текст поміщається в подвійні лапки).

Перерахування дозволяють створювати власні типи даних.

Класи enum — це ті ж перерахування, але надійніші і безпечніші. Використовуйте їх замість звичайних перерахувань, якщо ваш компілятор підтримує C++11 і вище.

typedef дозволяє створювати псевдоніми для типів даних. Цілочисельні типи даних з фіксованим розміром реалізовані за допомогою typedef. Псевдоніми типів корисні для присвоювання простих імен складним типам даних.

І, нарешті, структури. Вони дозволяють згрупувати змінні різних типів в єдине ціле. Доступ до членів структури здійснюється через оператор вибору членів (.). Об’єктно-орієнтоване програмування в значній мірі ґрунтується саме на структурах, тому, якщо ви вивчили тільки одну тему з цього розділу, то краще, щоб це були структури.

Тест

При розробці гри ми вирішили, що в ній повинні бути монстри, тому що всім подобається битися з монстрами. Оголосіть структуру, яка представляє вашого монстра. Монстр може бути одним з наступних:

   ogre

   goblin

   skeleton

   orc

   troll

Якщо ваш компілятор підтримує C++11, то використовуйте класи enum, якщо ні — використовуйте звичайні перерахування.

Кожен монстр також повинен мати ім’я (використовуйте std::string) і кількість здоров’я, яке відображає, скільки шкоди він може отримати, перш ніж помре. Напишіть функцію printMonster(), яка виведе всі члени структури. Оголосіть монстрів типу goblin і orc, ініціалізуйте їх, використовуючи список ініціалізаторів, і передайте в функцію printMonster().

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

This Goblin is named John and has 170 health.
This Orc is named James and has 35 health.

Відповідь C++11

Відповідь до С++11

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

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

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

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