Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторний практикум.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
3 Мб
Скачать
☆

Лабораторна робота 12

Тема роботи: Програмування класів

Мета роботи: Формування навиків роботи із класами, алгоритмами їх оголошення та обробки.

Для виконання роботи необхідно знати:

  • поняття класу та його призначення;

  • оголошення класу;

  • доступ до відкритих та закритих членів класу;

  • визначення елементів-функцій класу;

  • алгоритми роботи із класами.

Теоретичні відомості

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

В цілому поняття класу нагадує поняття структури в С++ за виключен­ням ряду моментів:

  • він містить в собі ряд специфікацій доступу до об’єктів класу;

  • як правило він включає в себе елементи - функції, що задають пра­вила обробки об’єктів класу;

  • для створення-знищення об’єктів класу використовуються спеці­аль­ні функції – конструктор та деструктор.

На відміну від полів структури, які є доступними завжди, в класі чле­ни та методи можуть мати різний рівень доступу. До відкритих полів (public) доступ дозволений будь-кому. До закритих (private) та захи­щених (protected) полів доступ ззовні класу є закритий, щоби не порушити цілісність даних. Доступ до таких полів мають тільки елементи-функції класу.

Оголошення класу виконується за наступним синтаксисом:

class <імя класу>

{

private:

<закриті елементи-дані >

<закриті елементи-функції>

protected:

<захищені елементи-дані >

<захищені елементи-функції>

public:

<відкриті елементи-дані >

<відкриті елементи-функції>

}

<імя класу> утворюється за правилами утворення будь-яких інших ідентифікаторів. По замовчуванню для всіх елементів класу діє закритий режим доступу.

Для прикладу створимо клас complex для роботи із комплексними числами. В ньому будуть:

члени класу:

double x – дійсна частина комплексного числа;

double y – уявна частина комплексного числа.

методи класу:

double modul() – функція, що обчислює модуль комп­лекс­ного числа;

double argument()– функція, що обчислює аргумент комп­­лексного числа;

void show_complex()– функція, що виводить комплексне число на екран;

Оголошення класу матиме наступний вигляд:

class complex

{

public:

double x;

double y;

double modul()/*обчислення модуля комплексного числа */

{

double temp;

temp=pow(x*x+y*y,1/2.0);

return temp;

}

double argument()/*обчислення аргумента комплексного числа */

{

double temp;

temp=atan2(y,x)*180/pi;

return temp;

}

Void show_complex() /*вивід комплекснеого числа на екран */

{

if(y>=0) cout<<x<<"+"<<y<<"i"<<endl;

else cout<<x<<"-"<<y<<"i"<<endl;

}

};

Функції-члени можуть бути визначені як безпосередньо при описі класу, так і в будь якому місці за межами класу, так як це зроблено нижче. Визначення функції-члену починається із імені класу, після якого через операцію :: ім’я функції та її параметри:

class complex

{

public:

double x;

double y;

double modul();

double argument();