Зміст
Введення
1. Історія розвитку мов програмування
2. Основи об'єктно-орієнтованого програмування
3. Класи
4. Конструктори і деструктори
5. Спадкування
6. Покажчик this
7. Друзі
8. Перевантаження операцій
9. Константні об'єкти і константні методи
Література
Введення
Важливою віхою в розвитку програмування стало створення і широке поширення мови С + +. Цей мову, зберігши кошти став загальновизнаним стандартом для написання системних і прикладних програм мови С (процедурно-орієнтована мова), увів в практику програмування можливості нового технологічного підходу до розробці програмного забезпечення, що одержало назву "Об'єктно-орієнтоване програмування". Впровадження в практику програмування об'єктно-орієнтованої парадигми дає розвиток нових областей інформатики, значне підвищення рівня технологічності створюваних програмних коштів, скорочення витрат на розробку і супровід програм, їх повторне використання, залучення в процес розширення інтелектуальних можливостей ЕОМ. Об'єктний підхід інформаційного моделювання предметних областей все більш успішно застосовується в якості основи для структуризації їх інформаційних віддзеркалень і, зокрема, баз знань.
1. Історія розвитку мов програмування
Перші комп'ютери з'явилися наприкінці Великої Вітчизняної Війни спочатку в Сполучених Штатах Америки, а пізніше в СРСР. Ці машини могли вирішувати обмежений клас задач. p> Кодування відбувалося на фізичному рівні. Спочатку програми зберігалися на перфокартах. Таким чином, процес налагодження програми займав дуже багато часу. Пізніше з'явилися магнітні стрічки і магнітні диски, що полегшило завдання переносимості програм.
В кінці 1950 - початку 1960 років з'явилися мови програмування Fortran (FORmula TRANslation) і Cobol (COmmon Business Oriented Language)-мова, орієнтований на виконання загальних економічних розрахунків.
У 1960-70 роках було написано безліч мов програмування. Майже кожен програміст придумував свій мову, мріючи увічнити своє ім'я.
В кінці 1970-х з'явилися Паскаль, Модула, Сі, які широко застосовувалися. p> На початку 1980-х широке поширення набули персональні комп'ютери. Приблизно в цей же час з'явилася мова C + +.
Природно, що C + + найбільше близький до мови C. Мова С повністю включений в C + +, залишені всі можливості С як мови низького рівня для виконання найбільш складних і універсальних програм. Іншим джерелом натхнення була мова Simula67; звідти запозичені концепції класів і похідних класів з віртуальними функціями.
Назва мови C + + виникло влітку 1983 року. Більш ранні версії, відомі під ім'ям "C з Класами", використовуються з 1980 року. Спочатку мова виникла в процесі створення програми подієво-керованої симуляції, для якої ідеально підійшов би мову Simula67, якби не міркування ефективності. "C з Класами" використовувався для основних проектів з симуляції тільки в програмах, критичних за часом виконання і обсягом використовуваної пам'яті. C + + вперше виник поза групою автора в липні 1983року, проте він вже тоді практично не відрізнявся від сучасної версії мови.
Назва "C + +" було запропоновано Ріком Масцітті і символізує еволюційні зміни, що відбулися з мовою C ("+ +" - позначення оператора інкрементація в мові C).
Таким чином, еволюцію мов можна показати на схемою:
Коди Асемблери Мови високого Об'єктно-орієнтоване і рівня модульне програмування
2. Основи об'єктно-орієнтованого програмування:
Об'єктно-орієнтоване програмування - це самий високорівнева вид програмування в даний час. Тут підтримуються досягнення попередніх поколінь і додані нові властивості. Ці нові властивості реалізують парадигму об'єктно-орієнтованого програмування.
Об'єктно-орієнтоване програмування на C + + грунтується на таких основних етапах розробки програм.
Перший етап полягає у виділенні абстракцій. Виділення абстракцій означає аналіз предметної області, для якої складається програма, з метою визначення основних об'єктів предметної області, їх властивостей, відносин між об'єктами, а також можливих операцій над об'єктами і їх складовими.
Другий етап полягає в типізації об'єктів і синтезі абстрактних типів даних.
Етап передбачає визначення нових похідних типів даних і наборів специфічних функцій або операцій, що застосовуються до цих типів даних таким чином, щоб виключити можливість змішування або взаємозаміни різних типів.
Третій етап полягає в об'єктній декомпозиції як виділення підтипів або подоб'ектов та їх складових для кожного з типів об'єктів.
Четвертий етап являє собою композиційну ієрархизацію об'єктів як виділення родовідових і композиційних відносин над об&...