Частина тексту файла (без зображень, графіків і формул):
В мові Сі++ повністю підтримується ООП, а саме наслідування, інкапсуляція, поліморфізм. Інкапсуляція це властивість прихованості чи автономності об’єкту яка використовується у зовнішніх конструкція, З допомогою інкапсуляція можна забезпечити прихованість даних. Користувач використовує об’єкт не знаючи його внутрішньої роботи. В мові С++ інкапсуляція підтримується через розробку нестандартних типів даних які називаються даними. Грамотно визначений клас працює повністю як капсульований об’єкт. Його можна використовувати як суцільний програмний модуль. Справжня внутрішня робота класу повинна бути прихована. Користувачу необхідно лише знати як використовувати цей клас.
Наслідування- означає що можна оголосити новий тип даних (клас), що є розширенням існуючого класу. Цей новий клас є нащадком існуючого класу і називають його похідним.
Поліморфізм(багато форм)- мова С++ дозволяє вносити зміни у виконання однойменних функцій для різних об’єктів через поліморфізм функції і класів.
Функцій
Функції класифікують на 2 види:
Вбудовані
Користувацькі
Функція має прототип, тіло функції і виклик.
Існує 3 способи оголошення функції:
Записати прототип функції у файл, а потім використати директиву includе, щоб включити текст в файл програми.
Записати прототип в той файл, де функція застосовується.
Функція має бути визначена до того як її викличе інша функція. В цьому випадку визначення виступає як оголошення
Приклади:
1.Int myf(intn,intm);прототип завжди закінчується ;
2.Int myf(intn,intm)
{
Retutn (); визначення функції
3.Int myf(5,7); виклик функції
Після виклику функції управління передається першому оператору тіла функції. Функція може викликати інші функції та самі себе.
Перевантаження функції
Мова С++ дозволяє створювати декілька різних функції з однаковим іменем. Це називається перевантаженням функції. Такі функції повинні відрізнятись між собою списками параметрів: типом або кількістю параметрів, або і тим і тим одночасно.
Приклад:
Inb myf(int)
Int myf(int, float)
Int myf (float);
Функція myf перевантаженна з трьома різними списками параметрів. В результаті перевантаженн функції відбувається явище поліморфізму функції. Це означає, що в програмі існує декілька. Типи значень, що повертаються з функції можуть бути однаково різними.
Наприклад функції подвоює значення що їй передається. Такі значення можуть бути різного типу. Int, long, float, double. Без перевантаження функції потрібно було б створювати різні функції.
Приклад:
Int d1(int);
Int d2(long);
Int d3(doublr);
З допомогою перевантження функції достатньо використати наступне оголошення:
Int D(int);
Int D(long);
Int D (float);
Int D(double);
Достатньо передати потрібну змінну і потрібна версія функції буде викликана автоматично.
Вбудовані функції
Якщо функції невилка складається з однієї чи двох інструкцій, то можна отримати дечкий виграш якщо замість переходів від програми до функції та назад дати компілятору команду вбудувати код функції за місцем виклику. Якщо функція оголошена з ключовим словом inline компілятор не створює функцію памяті компютера, а копію її рядки в код програми безпосередньо за місцем її виклику. Якщо функція викликається багато разів, то за швидкість виконання програми прийдеться заплатити розмірами програмного коду.
Пиклад:
Inline int myf (intn);
N=myf(n);
……………….
Int myf(intn);
{
Return 2*n;
Результат виконання такого прототипу рівносильний заміні в програмі виклику функції стрічкою n=2*n;
Розподілення оперативної памяті при виклику функції
Спеціальна область ОП що виділяється для розміщенні даних необхідних для кожного виклику функції називається степом.
Степ представляє собою чергу типу: останнім прийшов-перший вийшов.
Тобто елемент що добавлени1 в степ останнім буде виведений з нього першим. В окремому місці(регістрі) фіксується вказівник вершини степу. Все що знаходиться вище вершини до степу не відноситься. При переході програми до виконання функції відбуваються наступні дії:
В степ поміщається адреса повернення після завершення виконання функції.
В степу резервується місце для результату роботи функції згідно з повідомленням типу.
Поточна адреса зберігається в спеціальному вказівнику який називається записом активації. Все що додано в степ з цього моменту і до завершення роботи в функції розглядаються к локальні дані функції.
Всі аргументи функції поміщаються в степ.
Виконується перша команда функції.
Локальні зміні поміщаються в степ за чергою їх визначення.
Після завершення роботи функції її результат поміщається в степ.
Вказівник вершини степу із запису активації пересилається у вказівник степу, степ повністю очищується, видираються всі змінні та аргументи функції.
ООП програмування
Об’єкт
Стан обєкту характеризується переліком всіх можливих властивостей(статичних) і поточними значеннями(динамічними) для кожної з цих властивостей.
Поведінка обєкту характеризує те як він впливає або підлягає впливу інших обєктів з точки зову зміни стану цих обєктів і передачі повідомлень.Поведінка обєкту повістю визначається його діями. В поведінці обєкут виділяється поняття операція. З практики відомо 5 оснвих видів операції над обєктами:
Модифікатор- операція, що змінює стан обєкту шляхом запису або доступу.
Селектор- операціє, що дає доступ до стану обєкту без його зміни.(операція читання).
Літератор – операція доступу до вмісту обєкту по частинам.( в певній послідовності)
Конструктор – операція створення і (або) ініціалізації обєктів.
Деструктор – операція знищення обєкту.
Стосовно поведіки обєкти можуть активними і пасивними
Активні обєкти можуть реалізувати свою поведінку без впливу інших обєктів. Активні обєкти розміщаються в так званому каналі управління.
Пасивні обєкти можуть змінювати свої властивості під впливом інших обєктів.
Якщо система має декілька каналів управління той активних обєктів може бути багато . В послідовних системах кожний момент часу існує лише один канал управління.
Ідивідуальність це така властивість обєкту яка вирізняє його серед всіх інших обєктів. Наприклад імя обєкту завжди залишається тим самим які б значеннями змінним ми не присвоїли. Розрізняють оперецаї присвоєння і рівності обєкту а також час інсування обєкту.
Ви не можете залишити коментар. Для цього, будь ласка, увійдіть
або зареєструйтесь.
Ділись своїми роботами та отримуй миттєві бонуси!
Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!