Лабораторна робота № 3
Тема: Створення класів та робота з об’єктами класів.
Мета: Ознайомитись з класами, їх створенням та роботою з об’єктами класів.
Теоретичні відомості:
Однією з основних рис C + +, якої немає в С, є концепція класів. По суті, класи - найважливіше поняття в C + +. Класи схожі на структури мови С. Однак структура З визначає тільки дані, асоційовані з цією структурою. Ось приклад структури С: struct CIRCLE ( int radius; int color; (; Після того, як ви оголосили структуру, ви можете використовувати її в межах вашої функції main (), як показано нижче: void main () CIRCLE MyCircle; ... ... MyCircle.radius = 18; MyCircle.color = 255; / / 255 задає колір ... ... ) Зі структурою MyCircle (що представляє окружність) асоціюються дані radius і color (радіус і колір). Клас в C + +, з іншого боку, має як асоційовані з ним дані, так і функції. Дані класу називаються елементами даних, а функції класу - елементами-функціями. Отже, у програмі, яка використовує класи, можна написати наступний код: MyCircle.radius = 20; MyCircle.color = 255; MyCircle.DisplayCircle (); Перші два оператори присвоюють значення елементів даних MyCircle radius і color; третій оператор викликає функцію-елемент DisplayCircle () для виводу кола MyCircle. MyCircle називається об'єктом класу circle. Ваша програма може оголосити інший об'єкт з ім'ям HerCircle класу circle наступним чином: CIRCLE HerCircle; Наступні оператори присвоюють значення елементів даних HerCircle radius і color: HerCircle.radius = 30; HerCircle.color = 0; Потім ви можете використовувати функцію-елемент DisplayCircie () для виводу кола HerCircle: HerCircle.DisplayCircle (); Оголошення класу Перед тим як працювати з класом, ваша програма повинна його оголосити (так само як перед роботою зі структурою mystructure ви повинні були оголосити її елементи даних). У цьому розділі ви познайомитеся з синтаксисом оголошення класу. Ви будете і далі практикуватися з класом circle: class Circle ( public: Circle (); void SetRadius (void); void GetRadius (void); ~ Circle (); private: void CalculateArea (void); int radius; int color; ); Оголошення класу має наступну будову: class Circle ( ... ... Тут ви вводите оголошення класу ... ... ); Ключове слово class показує компілятору, що все знаходиться в фігурних дужках (()) належить оголошенню класу. (Не забувайте ставити крапку з комою в кінці оголошення.) Оголошення класу містить оголошення елементів даних (наприклад, int radius) і прототипи функцій-елементів класу. В оголошенні класу circle містяться такі елементи даних: int radius; int color; Оголошення також містить п'ять прототипів функцій-елементів: Circle (); void SetRadius (void); void GetRadius (void); ~ Circle (); void CalculateArea (void); Перший і четвертий прототипи виглядають дивно. Перший з них є прототипом функції конструктора: Circle (); Ви дізнаєтеся про роль конструктора пізніше в цьому розділі, а поки запам'ятайте синтаксис, який використовується в C + + для прототипу функції конструктора. Коли ви записуєте прототип конструктора, ви повинні слідувати правилам, наведеним нижче:     * Кожне оголошення класу має включати прототип функції конструктора.     * Ім'я функції конструктора має збігатися з ім'ям класу, а після нього повинні слідувати круглі дужки (). Якщо, наприклад, ви розкажете клас з ім'ям Rectangle, він повинен включати оголошення функції конструктора класу: Rectangle (). Отже, оголошення класу Rectangle має виглядати так: class Rectangle ( public: Rectangle (); / / Конструктор ... ... private: ... ... ); Не згадуйте ніякого значення, що повертається для функції конструктора. (Функція конструктора повинна мати тип void, але не потрібно це вказувати.) Функція конструктора повинна розташовуватися під ключовим словом public. Функція конструктора завжди повертає значення типу void (незважаючи на те, що ви не вказали його в прототипі). Як ви незабаром побачите, функція конструктора зазвичай має один або більше число параметрів.
Хід роботи
Створити ієрархію класів, структури «Спорт клубу».
Створити ієрархію класів сруктури «Бібліотеки».
Створити ієрархію класів структури «Продуктового магазину»