Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
+ООП_Навч_посібник.doc
Скачиваний:
8
Добавлен:
01.07.2025
Размер:
6.58 Mб
Скачать

1.2.3. Поняття про успадкування

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

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

1.2.4. Мова програмування C++ і реалізація об'єктно-орієнтованого програмування

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

1.2.5. Зв'язок мови програмування C++ з мовами Java і С#

Ймовірно, багато студентів знають про існування таких мов програмування, як Java і С#. Мову Java розроблено в компанії Sun Microsystems, а C# – у компанії Microsoft. Оскільки іноді виникає плутанина відносно того, яке відношення ці дві мови мають до мови програмування C++, спробуємо внести ясність в це запитання.

Мова програмування C++ є батьківською мовою для Java і С#. І хоча розробники Java і С# додали до першоджерела, видалили з нього або модифікували різні засоби, в цілому синтаксис цих трьох мов практично однаковий. Більше того, об'єктна модель, яку використано у мові C++, подібна до об'єктних моделей мов Java і С#. Нарешті, дуже схоже загальне враження і відчуття від використання всіх цих мов. Це означає, що, знаючи мову C++, Ви можете легко вивчити мову Java або С#. Схожість синтаксисів і об'єктних моделей – одна з причин швидкого засвоєння (і схвалення) цих двох мов багатьма досвідченими С++-програмістами. Зворотна ситуація також можлива: якщо Ви знаєте мову Java або С#, то вивчення мови програмування C++ не завдасть Вам труднощів.

Основна відмінність між мовами C++, Java і С# полягає в типі обчислювального середовища, для якого розроблялася кожна з цих мов. Мова програмування C++ створювалася з метою написання високоефективних програм, призначених для виконання під управлянням певної операційної системи і з розрахунку на ЦП конкретного типу. Наприклад, якщо виникає бажання написати високоефективну програму для виконання на процесорі Intel Pentium під управлянням операційної системи Windows, краще за все використовувати для цього мову C++.

Мови Java і С# розроблені у відповідь на унікальні потреби сильно розподіленого мережевого середовища, яке може слугувати типовим прикладом сучасних обчислювальних середовищ. Мова Java дає змогу створювати міжплатформений (сумісний з декількома операційними середовищами) переносний програмний код для Internet. Використовуючи Java, можна написати програму, яка виконуватиметься в різних обчислювальних середовищах, тобто в широкому діапазоні операційних систем і типів ЦП. Таким чином, Java-програма може вільно почуватися у мережі Internet. Мова C# розроблена для середовища .NET Framework (Microsoft), яка підтримує багатомовне програмування (mixed-language programming) і компонентно-орієнто­ва­ний код, що виконується в мережевому середовищі.

Хоча мови Java і С# дають змогу створювати переносний програмний код, який працює в сильно розподіленому середовищі, ціна цієї переносності – ефективність. Java-програми виконуються повільніше, ніж С++-програми. Те саме стосується і мови С#. Тому, якщо виникає бажання створювати високоефективні програмні продукти, використовують мову програмування C++. Якщо ж потрібні переносні програми, використовують мову Java або С#.

Варто знати! Мови програмування C++, Java і С# призначені для вирішення різноманітних питань та розв'язання різних класів задач. Тому запитання "Яка мова є кращою?" поставлене некоректно. Доречніше було б сформулювати запитання дещо по-іншому: "Яка мова найбільш підходить для розв'язання конкретної задачі?".

Розділ 2. Основні елементи мови програмування С++

Найважливішим у вивченні мови програмування C++, безумовно, є те, що жоден її елемент не існує ізольовано від інших, тобто компоненти мови працюють разом. Такий тісний взаємозв'язок ускладнює розгляд одного аспекту мови програмування C++ без перегляду інших. Часто обговорення одного засобу програмування передбачає попереднє знайомство з іншим. Для подолання подібних труднощів у цьому розділі наведено короткий опис таких основних елементів мови програмування C++, як загальний формат С++-програми, основні настанови керування та оператори. При цьому ми не заглиблюватимемося в деталі, а зосередимося на загальних концепціях створення С++-програми. Більшість тільки дещо розглянутих тут елементів мови програмування C++ детальніше розглядаються в наступних розділах цього навчального посібника.

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

2.1. Розроблення найпростішої С++-програми

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

Код програми 2.1. Демонстрація розроблення першої С++-програми

// Програма №1 – Перша С++-програма.

#include <iostream> // Для потокового введення-виведення

using namespace std; // Використання стандартного простору імен

int main() // Початок виконання програми.

{

cout << "Це моя перша С++-програма.";

getch(); return 0;

} // Завершення роботи програми.

Отже, програміст повинен виконати такі дії:

  • ввести текст програми;

  • скомпілювати її;

  • запустити на виконання.

Початковий код – це текстова форма представлення програми. Об'єктний код – це форма представлення програми, яку може виконати комп'ютер.

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