Загальні відомості про мову програмування С++

Автор работы: Пользователь скрыл имя, 15 Февраля 2012 в 18:13, курсовая работа

Описание

Мова С++ утворилася з мови С, яка була створена на основі двох попередніх мов − ВСРL і В. Мова ВСРL була створена в 1967 році Мартіном Ричардом як мова для написання компіляторів і програмного забезпечення операційних систем. Кен Томпсон передбачив багато можливостей у своїй мові В − дублікаті ВСРL і використав В для створення ранніх версій операційної системи UNIX у Ве11 Laboratories в 1970 році на комп’ютері DЕС РDР-7. І ВСР, і в минулому «нетиповими» мовами − кожен елемент даних займав одне слово у пам’яті, тому обробка елемента даних, наприклад, як цілого або дійсного числа було задачею програміста.

Работа состоит из  1 файл

полный.doc

— 395.00 Кб (Скачать документ)

Вступ

      С++ - це спроба рішення розробками мови С задач об’єктно – орієнтованого програмування. С++ вже став універсальною мовою для програмістів всього світу, мовою, на якому буде написане наступне покоління високоефективного програмного забезпечення.

      Мова С++ утворилася з мови С, яка була створена на основі двох попередніх мов − ВСР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. Оператори порівняння

      Для того щоб була можливість порівнювати  між собою значення будь-яких змінних, мова С++ передбачає так звані оператори  порівняння. Оператори порівняння –  бінарні оператори виду:

Информация о работе Загальні відомості про мову програмування С++