1 ВИКОРИСТАННЯ СУЧАСНИХ СИСТЕМ І МОВ ПРОГРАМУВАННЯ

1.1 Основні принципи об’єктно-орієнтованого програмування

Якісним кроком в розвитку методів структурного програмування став винахід об'єктно-орієнтованого програмування. Об'єктне і об'єктно-орієнтоване програмування (ООП) виникло внаслідок розвитку ідеології процедурного програмування, де дані і підпрограми (процедури, функції) їх обробки формально не зв'язані. Крім того, в сучасному об'єктно-орієнтованому програмуванні часто велике значення мають поняття події (так зване подієво-орієнтоване програмування) і компоненту (компонентне програмування).

Першою мовою програмування, в якій були запропоновані принципи об'єктної орієнтованості, була Симула. У момент своєї появи (у 1967 році), ця мова програмування запропонувала справді революційні ідеї: об'єкти, класи, віртуальні методи і ін., проте це все не було сприйнято сучасниками як щось грандіозне. Однак, більшість концепцій була розвинена Аланом Кейем і Деном Інгаллсом в мові Smalltalk. Саме вона стала першою широко поширеною об'єктно-орієнтованою мовою програмування.

С++ додає до С об'єктно-орієнтовані можливості. Він запроваджує класи, які забезпечують три найважливіші властивості ООП:

1. Інкапсуляція;

2. Наслідування;

3. Поліморфізм.

Додаткові властивості корисні, та не обов'язкові.

Розглянемо сі ці властивості детальніше.

Інкапсуляція

Основним способом організації інформації в С++ є класи. На відміну від типу структура (struct) мови С, яка може складатися лише з полів і вкладених типів, клас (class) С++ може складатися з полів, вкладених типів і функцій-членів (member functions). Члени класу бувають публічними (відкритими, public), захищеними (protected) і власними (закритими, приватними, private). В С++ тип структура аналогічний типу клас, відмінність в тому, що за умовчанням члени і базові класи в структурі публічні, а в класі - власні.

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

Використовуючи інкапсуляцію, автор класу може захистити свої дані від некоректного використання. Крім того, вона замислювалася для полегшення спільної розробки класів. Малося на увазі, що при зміні способу зберігання даних, якщо вони оголошені як захищені або власні, не вимагається відповідних змін в класах, які використовують змінений клас. Навіть оператор доступу operator [] може бути визначений як така стандартна функція.

Наслідування

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

Клас-наслідувач може додавати свої поля і функції або перевизначати функції базового класу.

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

Наслідувач – це більш ніж базовий клас, тому, якщо спадкоємств відкрите, то він може використовуватися скрізь, де використовується базовий клас, але не навпаки.

Наслідування буває публічним, захищеним і власним. При публічному спадкоємстві, публічні й захищені члени базового класу зберігають свій статус, а до власних не можуть звертатися навіть функції-члени спадкоємця. Захищене наслідування відрізняється тим, що при ньому публічні члени базового класу є захищеними членами спадкоємця. При власному спадкоємстві всі члени базового класу стають власними членами класу-спадкоємця. Таким чином, користувач похідного класу не може звертатися до членів базового класу, навіть якщо вони оголошені я публічні. Клас-наслідувач робить їх власними за допомогою власного спадкоємства. Як правило, публічне наслідування зустрічається значно частіше за інших.

Клас може бути спадкоємцем декількох класів. Це називається множинним наслідуванням. Такий клас володіє полями і функціями-членами всіх його предків.

Поліморфізм

Поліморфізмом в програмуванні називається перевизначення снаслідувачем функцій-членів базового класу.

У C++ є як статичний, так і динамічний поліморфізм, коли функція, що викликається, визначається під час виконання. Для цього функції-члени повинні бути віртуальними.

Чисто віртуальною функцією називається функція-член, яка оголошена зі специфікатором = 0:

Чисто віртуальна функція може бути залишена без визначення, крім випадку, коли вимагається зробити її виклик. Абстрактним класом називається такій, у якого є хоча б одна чисто віртуальна функція-член. Об'єкти таких класів створювати заборонено. Абстрактні класи часто використовуються як інтерфейси.


Информация о работе «Створення бази відеофільмів»
Раздел: Информатика, программирование
Количество знаков с пробелами: 50803
Количество таблиц: 0
Количество изображений: 11

Похожие работы

Скачать
43226
0
0

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

Скачать
43230
1
1

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

Скачать
91869
3
6

... дзеркала над демонстраційною плитою протягом багатьох років з успіхом використовуються в кулінарних училищах. 2.2 Експериментальна перевірка ефективності застосування технічних засобів навчання у навчально-виховному процесі при вивченні дисципліни «Кулінарія» Для перевірки результативності засвоєння знань студентами Чернігівського комерційного технікуму з використанням на заняттях технічних ...

Скачать
32077
1
0

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

0 комментариев


Наверх