12081

Створення та використання класів

Лабораторная работа

Информатика, кибернетика и программирование

Тема. Створення та використання класів. Мета. Навчитися створювати класи використовувати конструктори для ініціалізації обєктів опанувати принципи створення функційчленів. Навчитися використовувати різні типи доступу до полів та методів класів. Теоретичні

Украинкский

2013-04-24

72.5 KB

9 чел.

Тема. Створення та використання класів.

Мета. Навчитися створювати класи, використовувати конструктори для ініціалізації об’єктів, опанувати принципи створення функцій-членів. Навчитися використовувати різні типи доступу до полів та методів класів.

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

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

Клас є типом даних, який визначається користувачем. У класі задаються властивості і поведінка будь-якого предмету або процесу у вигляді полів даних (аналогічно до того як це є в структурах) і функцій для роботи з ними. Створюваний тип даних володіє практично тими ж властивостями, що і стандартні типи.

Конкретні величини типу даних «клас» називаються екземплярами класу, або об'єктами.

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

Опис класу в першому наближенні виглядає так:

class <ім'я> {

[private:]

<Опис прихованих елементів>

public:

<Опис доступних елементів>

}; //Опис закінчується крапкою з комою.

Специфікатор доступу private і public керують видимістю елементів класу. Елементи, описані після службового слова private, видимі тільки всередині класу. Цей вид доступу прийнятий у класі за замовчуванням. Інтерфейс класу описується після специфікатора public. Дія будь-якого специфікатора поширюється до наступного специфікатора або до кінця класу. Можна задавати кілька секцій private і public, їх порядок значення не має.

Поля класу:

  •  можуть мати будь-який тип, крім типу цього ж класу (але можуть бути вказівниками або посиланнями на цей клас);
  •  можуть бути описані з модифікатором const, при цьому вони ініціалізуються тільки один раз (за допомогою конструктора) і не можуть змінюватися;
  •  можуть бути описані з модифікатором static (розглядається в наступних лабораторних).

Ініціалізація полів при описі не допускається.

Конструктори.

Конструктор призначений для ініціалізації об’єкту і викликається автоматично при його створенні. Автоматичний виклик конструктора дозволяє уникнути помилок, пов’язаних з використанням неініціалізованих змінних. Нижче наведені основні властивості конструкторів:

  •  Конструктор не повертає жодного значення, навіть типу void. Неможливо отримати вказівник на конструктор.
  •  Клас може мати декілька конструкторів з різними параметрами для різних видів ініціалізації (при цьому використовується механізм перевантаження).
  •  Конструктор без параметрів називається конструктором за замовчуванням.
  •  Параметри конструктора можуть мати будь-який тип, крім цього ж класу. Можна задавати значення параметрів за замовчуванням. Їх може містити тільки один з конструкторів.
  •  Якщо програміст не вказав жодного конструктора, компілятор створює його автоматично. Такий конструктор викликає конструктори за замовчуванням для полів класу і конструктори за замовчуванням базових класів. У разі, коли клас містить константи або посилання, при спробі створення об'єкту класу буде видана помилка, оскільки їх необхідно ініціалізувати конкретними значеннями, а конструктор за замовчуванням цього робити не вміє.
  •  Конструктори не наслідуються.
  •  Конструктори не можна описувати з модифікаторами const, virtual і static.
  •  Конструктори глобальних об’єктів викликаються до виклику функції main. Локальні об’єкти створюються, як тільки стає активною область їх дії. Конструктор запускається і при створенні тимчасового об'єкта (наприклад, при передачі об’єкта з функції).
  •  Конструктор викликається, якщо в програмі зустрілася будь-яка із синтаксичних конструкцій:

імя_класу ім’я_об’єкту [(список параметрів)];

//Список параметрів не повинен бути порожнім

імя_класу (список параметрів); 

//Створюється об'єкт без імені (список може бути //порожнім)

ім’я_класу ім’я_об’екту = вираз;

//Створюється об’єкт без імені і копіюється

Завдання для лабораторної роботи

  1.  Створити клас відповідно до варіанту (див. Додаток).
  2.  При створенні класу повинен бути дотриманий принцип інкапсуляції.
  3.  Створити конструктор за замовчуванням та хоча б два інших конструктори для початкової ініціалізації об’єкта.
  4.  Створити функції члени згідно з варіантом.
  5.  Продемонструвати можливості класу завдяки створеному віконному застосуванню.  

Додаток

  1.  Клас Drib – звичайний дріб. Клас повинен містити функції-члени, які реалізовують: а)Додавання б)Віднімання в)Множення г)Ділення д)Скорочення дробу е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Обертання дробу з)Введення дробу з форми и)Виведення дробу на форму.
  2.  Клас Complex – комплексне число. Клас повинен містити функції-члени, які реалізовують: а)Додавання б)Віднімання в)Множення г)Піднесення до n-го степеня д)Отримання кореня n-го степеня е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Представлення в тригонометричній формі з)Введення комплексного числа з форми и)Виведення комплексного числа на форму.
  3.  Клас Vector – вектор в просторі. Клас повинен містити функції-члени, які реалізовують: а)Додавання векторів б)Віднімання в)Скалярний добуток г)Векторний добуток д)Добуток вектора на скаляр е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Обчислення довжини вектора з)Введення вектора з форми и)Виведення вектора на форму.
  4.  Клас Triangle – трикутник на площині (задаються довжини трьох сторін). Клас повинен містити функції-члени, які реалізовують: а)Знаходження площі трикутника б)Знаходження трьох кутів в)Знаходження периметра г)Знаходження трьох висот д)Збільшення одразу всіх трьох сторін трикутника на константу е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Перевірка чи трикутник є прямокутний з)Введення трикутника з форми и)Виведення трикутника на форму.
  5.  Клас Polynom – квадратичний тричлен (). Клас повинен містити функції-члени, які реалізовують: а)Знаходження значення виразу для заданого .  б)Знаходження значення похідної в заданій тч.  в)Знаходження визначеного інтегралу на заданому проміжку г)Знаходження коренів рівняння  д)Додавання двох поліномів е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Віднімання двох поліномів з)Введення полінома з форми и)Виведення полінома на форму.
  6.  Клас Drib – звичайний дріб. Клас повинен містити функції-члени, які реалізовують: а)Додавання б)Віднімання в)Множення г)Ділення д)Скорочення дробу е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Піднесення до степеня з)Введення дробу з форми и)Виведення дробу на форму.
  7.  Клас Complex – комплексне число. Клас повинен містити функції-члени, які реалізовують: а)Додавання б)Віднімання в)Множення г)Піднесення до n-го степеня д)Знаходження модуля комплексного числа е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Представлення в тригонометричній формі з)Введення комплексного числа з форми и)Виведення комплексного числа на форму.
  8.  Клас Vector – вектор в просторі. Клас повинен містити функції-члени, які реалізовують: а)Додавання векторів б)Віднімання в)Обчислення кута між даним вектором та довільним іншим г)Векторний добуток д)Добуток вектора на скаляр е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Обчислення довжини вектора з)Введення вектора з форми и)Виведення вектора на форму.
  9.  Клас Triangle – трикутник на площині (задаються довжини трьох сторін). Клас повинен містити функції-члени, які реалізовують: а)Знаходження площі трикутника б)Знаходження трьох кутів в)Знаходження периметра г)Знаходження трьох медіан д)Збільшення одразу всіх трьох сторін трикутника на константу е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Перевірка чи трикутник є прямокутний з)Введення трикутника з форми и)Виведення трикутника на форму.
  10.  Клас Polynom – квадратичний тричлен (). Клас повинен містити функції-члени, які реалізовують: а)Знаходження значення виразу для заданого .  б)Знаходження значення похідної в заданій тч.  в)Знаходження визначеного інтегралу на заданому проміжку г)Знаходження коренів рівняння  д)Додавання двох поліномів е)Задавання значень полів є)Зчитування (отримання значень полів) ж)Множення полінома на число з)Введення полінома з форми и)Виведення полінома на форму.


 

А также другие работы, которые могут Вас заинтересовать

48222. Технічна механіка 8.62 MB
  Технічна механіка є фундаментальною загальнотехнічною дисципліною, невід’ємною складовою системи підготовки інженерно-технічних працівників. Під час вивчення курсу студенти оволодівають знаннями законів рівноваги та руху матеріальних тіл, методів розрахунку елементів конструкцій, машин та споруд на міцність, жорсткість, стійкість, основами проектування деталей, вузлів машин. Знання дисципліни необхідні спеціалістам, які повинні організовувати належну експлуатацію й обслуговування сучасної залізничної техніки, удосконалювати її конструкцію та технології застосування.
48223. ТЕРМИЧЕСКИЕ МЕТОДЫ ОЧИСТКИ ВОД 81.5 KB
  Установки термического обезвреживания минерализованных сточных вод должны соответствовать следующим основным требованиям: I обеспечивать снижение концентрации вредных веществ в очищаемой воде до значений меньших ПДК; 2 иметь незначительную чувствительность к составу стоков; 3 обеспечивать надежность и экономичность в работе; 4. Концентрирование сточных вод Многокорпусные выпарные установки. На практике используют однокорпусные и многокорпусные выпарные установки включающие аппараты с естественной и принудительной циркуляцией. Наибольшее...
48224. Основні підходи до визначення поняття парламентаризму 56 KB
  : Поняття П = відображає з одно боку місце парламенту в мехзмі поділу влади і в цьому значенні наближене до політичного режиму а з іншого принципи устрою парламенту. влади: У вузькому розумінні: оргція і функціонування органу законодавчої влади що хться верховенством парламенту наявністю в нього виключних прерогатив і повноважень Журавський В. влади з особливою активною 1998 роллю парламенту. влади з вагомою і значною роллю парламенту передбаченими Кцією можливостями його активного впливу на сусп.
48225. Бізнес план виноробного заводу «INKERMAN International» 135 KB
  Щорічно вина Inkerman виграють тендер Міністерства закордонних справ України, присутні на заходах державного рівня — поставляються до закордонних представництв і посольств України, подаються на всіх офіційних дипломатичних прийомах.
48226. Теорія та методика обраного виду спорту 155 KB
  До таких показників ставляться: час рухової реакції час виконання одиночного руху величина й характер зусиль що розвивають дані про біоелектричну активність м'язів частота скорочень серця частота подиху вентиляція легенів серцевий викид споживання кисню швидкість нагромадження й кількість лактата в крові. При визначенні ступеня специфічності вправ потрібно орієнтуватися не тільки на зовнішню форму рухів але й на характер їхньої координаційної структури особливості функціонування м'язів вегетативні реакції. До вправ загального...
48227. Релігієзнавство. Курс лекцій 486 KB
  Це зумовлено тією роллю яку відіграє релігія в житті сучасного суспільства та окремої людини впливом релігії на політику культуру тощо. Інтерес до закономірностей розвитку релігії її історії інших проблем пов'язаних з взаємовідносинами церкви і держави міжконфесійними стосунками постійно зростає. Таким чином слід наголосити що об'єкт і предмет релігієзнавства співпадають: це закономірності становлення та розвитку релігії її роль у житті суспільства та індивіда. До структури релігієзнавства насамперед входять такі науки:  Філософія...
48228. ТЕОРЕТИЧНІ ОСНОВИ МЕТРОЛОГІЧНОГО ЗАБЕЗПЕЧЕННЯ ВИТРАТОВИМІРЮВАННЯ 3.65 MB
  ТЕОРЕТИЧНІ ОСНОВИ МЕТРОЛОГІЧНОГО ЗАБЕЗПЕЧЕННЯ ВИТРАТОВИМІРЮВАННЯ КОНСПЕКТ ЛЕКЦІЙ Для студентів спеціальності Метрологія та інформаційновимірювальна техніка Рекомендовано методичною радою університету ІваноФранківськ 2011 ІваноФранківський національний технічний університет нафти і газу С. Лекційне заняття №3 Класифікація засобів відтворення і вимірювання одиниць обєму та обємної витрати газу. Газова промисловість України як окрема галузь паливноенергетичного напряму економіки держави складає сьогодні чи не...
48229. ТЕОРИЯ ОРГАНИЗАЦИИ 542.5 KB
  Фокина ТЕОРИЯ ОРГАНИЗАЦИИ Курс лекций для студентов специальности Менеджмент организации ИЗДАТЕЛЬСТВО САРАТОВСКОГО УНИВЕРСИТЕТА Теория организации: Курс лекций для студ. Менеджмент организации.В курсе лекций рассмотрены основные вопросы теории организации предусмотренные образовательным стандартом а также некоторые новые проблемы и точки роста.
48230. ПРЕДМЕТ І СИСТЕМА ТРУДОВОГО ПРАВА 391 KB
  Будьяка соціальноекономічна формація формувалася зростала й розвивалася на основі праці. Але юридичні науки цікавить не загальне поняття праці а праця як правове явище як міра праці необхідна для творчого зростання людини з урахуванням як особистого так і колективного та суспільного інтересів. Трудове право провідна галузь українського права яка є системою правових норм що регулюють сукупність трудових відносин працівників1 із роботодавцями а також інші відносини що випливають з трудових або тісно пов'язані з ними і...