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

Міністерство освіти і науки України

Національний лісотехнічний університет України

Юрій ГРИЦЮК

ОБ'ЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ МОВОЮ С++

Навчальний посібник

Київ

Видавництво "ЮНІОР"

2006

ББК 32.973.26-01+18.2.75

Г85

УДК 681.3.07

Грицюк Ю.І.

Г 85 Об'єктно-орієнтоване програмування мовою С++: Навч. пос. – Київ: Вид-во "Юніор", 2006. – 464 с.: іл. 15, табл. 18.

ISВN 966-0000-00-0

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

Даний навчальний посібник написано на основі книг Герберта Шилдта [26-29] – визнаного авторитета в області програмування мовами С, С++, Java і C#, професійного Windows-програміста, члена комітету ANSI/ISO, що приймав стандарт для мови С і С++. Окрім того, в посібнику використано деякі матеріали з книги Роберта Лафоре [11], що стосуються використання об'єктно-орієн­то­ва­ного підходу до розроблення сучасного програмного забезпечення.

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

ББК 32.973.26-01+18.2.75

Навчальне видання

Юрій Іванович ГРИЦЮК – канд. техн. наук, доц. каф. обчисл. техніки

і моделювання технологічних процесів НЛТУ України

Об'єктно-орієнтоване програмування мовою С++

Головний редактор Ю.С. КОВТАНЮК

Літературний редактор В.В. ДУДОК

Технічний редактор Т.М. КОВТАНЮК

Відповідальний редактор С.В. СОЛОВ'ЯН

Підписано до друку 00.00.06. Формат 70100/16

Папір газетний. Гарнітура Times. Друк офсетний.

Умов. друк. арк. 37,54. Обл.-вид. арк. 25.10

Наклад 1500 прим. Зам. № 00/2006

Видавництво "Юніор", Україна, 03142, м. Київ, вул. Стуса, 35-37, оф. 111

тел./факс: (044) 452-82-22; e-mail: office@junior.com.ua; http://www.junior.com.ua

Свідоцтво про внесення суб'єкта видавничої справи до державного реєстру видавців,

виготовників і розповсюджувачів видавничої продукції серія ДК, № 368 від 20.03.2001 р.

Макет підготовлено редакційно видавничим відділом НЛТУ України,

79057, М. Львів, вул. Генерала Чупринки, 103/54

ISВN 966-0000-00-0  Ю.І. Грицюк, 2006

 Видавництво "Юніор", 2006

Стислий зміст

Про автора 18

Передмова 19

Вступ 20

Частина І. Основи програмування мовою С++ 25

Розділ 1. Історія виникнення| мови програмування С++ 27

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

Розділ 3. Основні типи даних| у мові програмування C++ 55

Розділ 4. Поняття про настанови керування ходом виконання С++-програми 72

Розділ 5. Масиви та рядки – засоби групування взаємопов'язаних між собою змінних 91

Розділ 6. Особливості застосування покажчиків 111

Розділ 7. Основи застосування С++-функцій 131

Розділ 8. Використання засобів програмування для розширення можливостей С++-функцій 157

Розділ 9. С++-специфікатори та спеціальні оператори 177

Розділ 10. Поняття про структури і об'єднання даних 206

Частина ІІ. Об'єктно-орієнтоване програмування мовою С++ 231

Розділ 11. Основи розроблення об'єктно-орієнтованих програм мовою C++ 233

Розділ 12. Введення в класи 245

Розділ 13. Робота з класами 270

Розділ 14. Перевантаження операторів 293

Розділ 15. Успадкування в класах 324

Розділ 16. Віртуальні функції та поліморфізм 349

Розділ 17. Шаблони в класах 364

Розділ 18. Оброблення виняткових ситуацій 381

Розділ 19. С++-система введення-виведення потокової інформації 399

Розділ 20. Динамічна ідентифікація типів і оператори приведення типу 432

Розділ 21. Поняття про простори імен та інші ефективні програмні засоби 448

Розділ 22. Введення в стандартну бібліотеку шаблонів 473

Розділ 23. Особливості роботи препроцесора С++ 513

Розділ 24. Формалізація процесу розроблення об'єктно-орієнтованого програмного забезпечення| 524

Додатки. Доповнення до С++ 557

Додаток А. Основи створення консольних програм у середовищі Borland C++ Builder 559

Додаток Б. Основи створення консольних програм у середовищі Microsoft Visual C++ 567

Додаток В. Дещо про С-систему введення-виведення 573

Додаток Г. Особливості використання застарілого С++-компілятора 587

Додаток Д. .NET-розширения для C++ 589

Література 593

ЗМІСТ

Про автора 18

Передмова 19

Вступ 20

Частина І. Основи програмування мовою С++ 25

Розділ 1. Історія виникнення| мови програмування С++ 27

1.1. Витоки мови програмування C++ 27

1.1.1. Причини створення мови програмування С 27

1.1.2. Передумови виникнення мови програмування C++ 29

1.1.3. Поява мови програмування C++ 30

1.1.4. Етапи вдосконалення мови програмування C++ 31

1.2. Основні ознаки об'єктно-орієнтованого програмування 31

1.2.1. Поняття про інкапсуляцію 31

1.2.2. Поняття про поліморфізм 32

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

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

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

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

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

2.1.1. Введення коду програми 36

2.1.2. Компілювання програми 36

2.1.3. Виконання програми 37

2.1.4. Порядкóвий аналіз програми 37

2.1.5. Оброблення синтаксичних помилок 39