Автор работы: Пользователь скрыл имя, 15 Февраля 2012 в 18:13, курсовая работа
Мова С++ утворилася з мови С, яка була створена на основі двох попередніх мов − ВСРL і В. Мова ВСРL була створена в 1967 році Мартіном Ричардом як мова для написання компіляторів і програмного забезпечення операційних систем. Кен Томпсон передбачив багато можливостей у своїй мові В − дублікаті ВСРL і використав В для створення ранніх версій операційної системи UNIX у Ве11 Laboratories в 1970 році на комп’ютері DЕС РDР-7. І ВСР, і в минулому «нетиповими» мовами − кожен елемент даних займав одне слово у пам’яті, тому обробка елемента даних, наприклад, як цілого або дійсного числа було задачею програміста.
Вступ
С++ - це спроба рішення розробками мови С задач об’єктно – орієнтованого програмування. С++ вже став універсальною мовою для програмістів всього світу, мовою, на якому буде написане наступне покоління високоефективного програмного забезпечення.
Мова С++ утворилася з мови С, яка була створена на основі двох попередніх мов − ВСРL і В. Мова ВСРL була створена в 1967 році Мартіном Ричардом як мова для написання компіляторів і програмного забезпечення операційних систем. Кен Томпсон передбачив багато можливостей у своїй мові В − дублікаті ВСРL і використав В для створення ранніх версій операційної системи UNIX у Ве11 Laboratories в 1970 році на комп’ютері DЕС РDР-7. І ВСР, і в минулому «нетиповими» мовами − кожен елемент даних займав одне слово у пам’яті, тому обробка елемента даних, наприклад, як цілого або дійсного числа було задачею програміста.
С++ − розширення С − була розроблена Б’ярном Страуструпом на початку 80-х років у Ве11 Laboratories. С++ забезпечує ряд властивостей, які упорядковують мову С. Мова програмування С++ є однією з найбільш популярних засобів об’єктно-орієнтованого програмування, що дозволяє розробляти програми, ефективні по обсязі коду й швидкості виконання. C++ включає велику кількість операцій і типів даних, засобу керування обчислювальними процесами, механізми модифікації типів даних і методи їхньої обробки й, як наслідок, є потужною мовою програмування. Вона дозволяє описувати процеси обробки інформації, починаючи з рівня окремих розрядів, видів й адрес пам’яті, переходячи на основі механізмів об’єктно-орієнтованого програмування до близьких конкретних предметних областей.
У мові С++ передбачається забезпечення сумісності з усіма конструкціями мови більш ранніх версій, наприклад допускається використання інструкцій для підключення заголовних файлів і застосування старих функцій вводу-висновку.
Пізніше було розроблено багато інших об’єктно-орієнтованих мов, включаючи найбільш помітну з них Smalltalk, розроблену у Центрі Досліджень Ра1про Аlto компанії Хегох. Smalltalk − чиста об’єктно-орієнтована мова − у ній всі компоненти являються об’єктом. С+ − це гібридна мова, вона надає можливість програмувати як у стилі С, так і в об’єктно-орієнтованому стилі, а також в обох стилях відразу.
1. Загальний розділ
1.1. Загальні відомості про мову програмування С++
Головним нововведенням C++ є механізм класів, що дає можливість визначати і використовувати нові типи даних. Програміст описує внутрішнє представлення об’єкту класу і набір функцій-методів для доступу до цього уявлення. Концепція класів пропонувала для цього механізм спадкування, що дозволяє створювати нові (похідні) класи з розширеним уявленням і модифікованими методами, не зачіпаючи при цьому скомпільований код початкових (базових) класів. Разом з тим спадкоємство забезпечує один з механізмів реалізації поліморфізму − базової концепції об’єктно-орієнтованого програмування, згідно якої, для виконання однотипної обробки різних типів даних може використовуватися один і той же код, поліморфізм − теж один з методів забезпечення повторного використання коду.
На початку 80-х років Б’ярн Страуструп в AT&T Bell Labs почав розробляти розширення мови під умовною назвою «С з класами», в якій вводилися ті або інші можливості з метою зробити зручнішою роботу конкретних груп людей. Перший транслятор нової мови, що отримала назву C++ з'явився в 1983 році. Він був препроцесором, що транслював програму в код на С. Однак, фактичним народженням мови вважається вихід в 1985 році книги Б’ярна Страуструпа. Саме з цієї миті C++ починає набувати всесвітньої популярності.
При
створенні бібліотек класів прагнули
побудувати єдину ієрархію класів із загальним
базовим класом Object. Ця ідея була запозичена
з Smalltalk − однієї з найбільш відомих об’єктно-орієнтованих
мов. Проте вона виявилася абсолютно нежиттєздатною
в C++ − ретельно продумані ієрархії бібліотек
класів виявлялися негнучкими, а робота класів − неочевидною. Для того, щоб бібліотеками класів можна було користуватися, їх доводилося поставляти в початкових текстах. Бібліотеки почали складатися з окремих класів і невеликих незв’язаних один з одним ієрархій. Проте на цьому шляху почало знижуватися повторне використання кодів, оскільки в C++ неможливе поліморфне використання класів з незалежних ієрархій.
Одним
з головних недоліків мови C++ є доступність
компілятору опису внутрішньої структури
всіх використаних класів. Як наслідок,
зміна внутрішньої структури представлення
якого-небудь бібліотечного класу приводить
до необхідності перекомпіляції всіх
програм, де ця бібліотека використовується.
Це значно обмежує розробників бібліотек
в частині їх модернізації, адже, випускаючи
нову версію, вони повинні зберігати двійкову
сумісність з попередньою. Саме ця проблема
примушує багато фахівців вважати, що
C++ непридатна для ведення великих і надвеликих
проектів.
1.2. Об’єктно-орієнтоване програмування
Мова програмування С+ є одним з найбільш популярних засобів об’єктно-орієнтованого програмування, що дозволяє розробляти програми, ефективні по обсязі коду й швидкості виконання.
Об’єктно-орієнтована мова – це мова програмування, на якій програма задається описом поведінки сукупності взаємозв’язаних об’єктів. Об’єкти обмінюються запитами; реагуючи на отриманий запит, об’єкт посилає запит іншим об’єктам, одержує відповіді, змінює значення своїх внутрішніх змінних і видає відповідь на отриманий запит.
Об’єктно-орієнтоване програмування (ООП) – це методика, яка концентрує основну увагу програміста на зв’язках між об’єктами, а не на деталях їх реалізації.
В
основі об’єктно-орієнтованого
Одним з найважливіших понять С++ є класи.
Клас – це спеціальний тип, який містить поля, методи й властивості. Класи поєднують в собі як данні, так і дії над цими даними.
Об’єктно-орієнтоване програмування базується на трьох основних поняттях: інкапсуляції, спадкуванні та поліморфізмі.
Інкапсуляція
– це принцип ООП, який дозволяє
об’єднати в єдине ціле складові
об’єкта і дії для
Спадкування – це принцип ООП в наслідок якого підлеглі об’єкти успадковують властивості головних об’єктів.. Кожен клас може бути породженим від іншого класу. Кожний породжений клас автоматично успадковує поля, методи та властивості свого родителя, а також може доповняти їх новими.
Поліморфізм – це принцип ООП, який дозволяє декільком об’єктам виконувати одну і ту саму дію використовуючи власні властивості та методи.
Об’єктно-орієнтований підхід помітно спростовує написання складних програм. ООП дозволяє багаторазово використовувати програмний код. Перевага ООП при розробці додатків в С++ заключається у тому, що можна використовувати попередньо створені об’єкти, а також породжати з них нові.
Як вже згадувалось, складовими класу є його поля, методи та властивості.
Поля – це інкапсульовані в класі дані. Поля можуть бути любого типу.
Кожен об’єкт отримує загальний для всіх об’єктів даного класу набір методів, властивостей та унікальний набір полів. Доступ до полів утворюється як через методи й властивості, так і на пряму. Для цього задається об’єкт класу.
Методи – це інкапсульовані в класі процедури та функції. Доступ до методів можливий через об’єкти класу.
Властивості
– це спеціальний механізм класів,
який використовується для регулювання
доступу до полів. Властивості служать
для опису об’єктів. Вони вказують
на методи, які повинні використовуватися
при запису в поле та читанні з
поля, яке зв’язане з даними властивостями.
1.3. Об’єкти, класи і компоненти
Класи − об’єкти, що володіють однаковим набором властивостей, але приймають різні значення.
Визначення класу в мові C++ містить інкапсуляцію членів даних і методів, що оперують з членами даних і таких, що визначають поведінку об’єкту.
C++ Builder вводить поняття компонента – спеціальних класів, властивості яких представляють атрибути об’єктів, а їх методи реалізують операції над відповідними екземплярами компонентних класів.
Будь-який об’єкт мови C++ має однакові атрибути і функціональність з іншими об’єктами того ж класу.
Об’єкт − суть, що з’являється при реалізації класу, наприклад, після запуску результатів компіляції початкового коду в адресному просторі обчислювальної системи. Об’єкт являється екземпляром класу.
Зазвичай, об’єкт знаходиться в деякому унікальному стані, який визначається поточними значеннями його атрибутів. Функціональність об’єктного класу визначається можливими операціями над екземпляром цього класу.
Метод – це процедура або функція включена в об’єкт таким чином, що екземпляр даного типу стає доступним лише з середини функції.
C++Builder дозволяє маніпулювати виглядом і функціональною поведінкою компонентів не тільки за допомогою методів, але і за допомогою властивостей і подій, властивих тільки класам компонентів.
Основна сфера
застосування методів в програмах,
що розробляються в середовищі C++Builder
– це оброблювачі подій, які реалізують
реакцію програми на виникнення певних
подій.
1.4. Арифметичні операції. Оператор привласнення
Функція, яку можна використовувати до об’єктів даного класу називають операцією. Одна і та ж операція може використовуватися до об’єктів різних класів.
Для здійснення маніпуляцій з даними С++ використовує широку систему операцій.
Операції являють собою деяку дію, яка виконується над одним (унарна) чи кількома операндами (бінарна операція), результатом якої є повертаючі значення.
Для ефективного використання повертаючого операціями значення використовується оператор привласнення (=) і його модифікації: додавання із привласнення (+=), віднімання із привласнення (-=), множення із привласнення (*=), ділення з привласнення (/=), модуль з привласнення (%=) та інші.
На практиці широко застосовується пустий оператор:
;
Така
форма оператора в програмному
коді не виконує ніяких дій, але дозволяє
компілятору обходити потреби синтаксису
за наявності оператора в деяких
конструкціях.
1.5. Шаблони (узагальнене програмування)
Узагальнене програмування − це техніка написання функцій і класів, залишаючи деякі типи даних невизначеними. Специфікація типу здійснюється, коли ця функція або клас використовується в початковому коді. Все робиться під контролем компілятора, і нічого не залишається для визначення під час виконання. Найбільш типовий приклад шаблону класу − це контейнерні класи. У C++ є шаблонні класи і функції, що відзначаються ключовим словом template. Стандартний C++ включає обширну бібліотеку шаблонів, звану STL (стандартна бібліотека шаблонів), яка підтримує специфічний і могутній стиль програмування: узагальнене програмування. C++ − єдина з мов, яка концентрується на підтримці узагальненого програмування, крім ООП.
1.6. Оператори порівняння
Для того щоб була можливість порівнювати між собою значення будь-яких змінних, мова С++ передбачає так звані оператори порівняння. Оператори порівняння – бінарні оператори виду:
Информация о работе Загальні відомості про мову програмування С++