Программирование на C++ - Аверкин В.П., Бобровский А.И., Веснич В.В., Радушинский В.Ф., Хомоненко А.Д
..pdfПод ред. проф. А. Д. Хомоненко
ПРОГРАММИРОВАНИЕ НА C++
Авт.: В.П.Аверкин, А.И.Бобровский, В.В.Веснич, В.Ф.Радушинский, А.Д.Хомоненко
Содержит систематическое изложение основных приемов программирования на языке C++: описание типов данных, объявление переменных, организация разветвлений и циклов, описание и использование массивов, указателей, функций. Рассматриваются понятия и приемы объектно-ориентированного программирования: определение классов и объектов, конструкторы и деструкторы, инкапсуляция, полиморфизм, наследование, шаблоны, обработка исключений, пространство имен, динамическая идентификация типов. Описывается технология разработки программ в среде Borland C++ Builder. Приводятся контрольные вопросы и задания.
Для студентов и преподавателей высших и средних учебных заведений. Содержание
Предисловие |
3 |
Часть I. Основные приемы программирования |
|
1. Введение в C++ |
7 |
1.1. Общая характеристика языка |
7 |
1.2. Технология разработки программ |
8 |
1.3. Пример программы |
10 |
2. Типы данных и выражения |
15 |
2.1. Алфавит и идентификаторы |
15 |
2.2. Операции, выражения и операторы |
17 |
2.3. Классификация типов данных |
21 |
2.4. Объявление переменных |
22 |
2.5. Задание констант |
25 |
2.6. Время существования и область видимости переменных |
27 |
3. Разветвления и циклы |
31 |
3.1. Программирование разветвлений |
31 |
3.2. Типы операторов циклов |
33 |
3.3. Вложенные циклы |
36 |
3.4. Рекомендации по выбору циклов |
36 |
3.5. Управляющие операторы в циклах |
38 |
4. Массивы и указатели |
41 |
4.1. Массивы |
41 |
4.2. Инициализация массивов |
42 |
4.3. Применение указателей |
42 |
4.4. Ссылки |
43 |
4.5. Указатели и массивы |
46 |
4.6. Указатели и многомерные массивы |
47 |
4.7. Динамические массивы |
47 |
4.8. Пример использования указателей и массивов |
50 |
5. Функции |
53 |
5.1. Общие сведения о функциях |
53 |
5.2. Получение нескольких результатов |
56 |
5.3. Функции с переменным числом параметров |
57 |
5.4. Рекурсивные и подставляемые функции |
60 |
5.5. Области действия переменных |
62 |
5.6. Библиотечные функции |
63 |
6. Массивы в качестве параметров функций |
67 |
6.1. Одномерные массивы |
67 |
6.2. Многомерные массивы |
70 |
6.3. Динамические массивы |
72 |
7. Использование препроцессора |
77 |
7.1. Общие сведения |
77 |
7.2. Определение и обработка макросов |
77 |
7.3. Включение файлов |
79 |
7.4. Условная компиляция |
79 |
Часть II. Объектно-ориентированное программирование |
|
8. Введение в объектно-ориентированное программирование |
83 |
8.1. Структурный подход в программировании |
83 |
8.2. Концепции объектно-ориентированного программирования |
87 |
8.3. Этапы объектно-ориентированного программирования |
92 |
9. Классы и инкапсуляция |
95 |
9.1. Описание класса |
95 |
9.2. Создание и использование объектов |
97 |
9.3. Конструкторы и деструкторы |
99 |
9.4. Пример создания и использования класса |
101 |
10. Наследование |
105 |
10.1. Управление доступом производных классов |
105 |
10.2. Одиночное наследование |
107 |
10.3. Множественное наследование |
110 |
11. Полиморфизм |
115 |
11.1. Перегрузка функций |
115 |
11.2. Выбор экземпляра функции |
117 |
11.3. Перегрузка стандартных операций |
118 |
11.4. Виртуальные функции |
130 |
12. Основы организации ввода-вывода |
:135 |
12.1. Классификация средств ввода-вывода |
135 |
12.2. Принципы работы с потоками и файлами |
136 |
12.3. Форматированный ввод-вывод базовых типов |
142 |
12.4. Манипуляторы |
147 |
12.5. Флаги состояния потока |
150 |
12.6. Связывание потоков |
151 |
13. Дополнительные возможности ввода-вывода |
153 |
13.1. Форматированный ввод-вывод пользовательских типов |
153 |
13.2. Файловый ввод-вывод |
155 |
13.3. Неформатированный ввод-вывод |
160 |
13.4. Обмен со строкой в памяти |
163 |
13.5. Использование библиотеки stdio |
165 |
14. Шаблоны |
177 |
14.1. Параметризованные функции |
177 |
14.2. Параметризованные классы |
180 |
14.3. Стандартная библиотека шаблонов |
181 |
15. Дополнительные возможности C++ |
187 |
15.1. Пространство имен |
187 |
15.2 Обработка исключений |
191 |
15.3. Динамическая идентификация типов |
198 |
15.4. Приведение типов |
203 |
16. Разработка приложений в Borland C++ Builder |
207 |
16.1. Общая характеристика системы |
207 |
16.2. Библиотека классов системы |
209 |
16.3. Интегрированная среда разработки |
214 |
16.4. Создание приложений |
218 |
Приложение |
228 |
Ключевые слова |
228 |
Предметный указатель |
243 |
Литература |
249 |
Предметный указатель Символы
#define 77 #else 80 #endif 80 #if 79 #ifdef 80 #ifndef 80 #include 79 #undef 77 & 42 * 43 -> 89
. 89 :: 188
<< 142, 154 >> 142, 153
A
ASCII-код 15 auto 27
B
badbit 150 before() 200
bool 23
Borland C++ Builder 207 break 32, 38
buffer 137
C
catch 192 cerr 138 cin 138
class 96, 110 clog 138 const 22, 26 const_cast 204 continue 42 cout 138
D
delete 48, 52, 73 DETECT 113 do — while 35 double 25
dynamic_cast 203
E
endl 149 enum 22, 27 eofbit 150
exception handling 191 extern 27
F
failbit 150 flags(0) 143 float 24 flush 149 for 34 fprintf() 173 fscanf() 173 fseek() 172 fstream 139
G
gcount() 163
get() 160, 161, 163 getline() 163 gets() 171
goodbit 150 goto 42
I
IDE 208 if ...else 31
ifstream 139 initgraph 65, 113 inline 61 iomanip.h 148
iostream.h 135, 138, 148 istrstream 163
L
long double 25
M
main() 53 MFC 210
N
namespace 187, 189 new 48, 51, 73
O
ofstream 139 operator 119 ostrstream 163 OWL 210
P
printf() 166, 168 private 95, 105 protected 95, 105 public 95, 105 pure 132
put() 160 puts() 170
R
rand()%2 201 read() 160, 163 reference 43 register 27 reinterpret_cast 204 return 53
RTTI 198
S
scanf() 166, 167, 169 setf() 144, 145 signed 24
sizeof 20 sstream.h 163 static 27
std 189 stdaux 166 stderr 166 stdin 166 stdio 165 stdio.h 136 stdout 166 stdprn 166 STL 181 stream 136 strstrea.h 163 strstream 163 struct 96, 110 switch 32
T
TComboBox 218
TComponent 213 template 177 terminate() 192 TGraphicControl 213 this 91
throw 192, 195 tie() 151 TListBox 218 TObject 212 TPersistent 212 TRadioButton 218 try 192 TWinControl 213 type_info 199 typeid 199, 200 typeinfo 199 typename 177 TControl 213
U
union 96 unsetf() 145 unsigned 24 using 189
V
VCL 209, 210 virtual 90, 132 void 22, 53, 55
W
whence 172 while 34 write() 160
A
алфавит 15 аргумент 54
Б
Библиотка визуальных компонентов 209 буфер 137
В
ввод-вывод варианты организации 141
неформатированный 160 символы преобразования 168 символьный 160 синхронизации операций 151
строко-ориентированный 161, 169, 175 файловый 155 форматированный 173
вектор 50
вкладка Standard 217
возведение в степень 60 время существования 27, 29 выбор
множественный 32 операции 89
выражение 17
Г
графика инициализация 113
Д
декомпозиция 84 декремент 20 деструктор 91, 100, 108
З
защищенный 95
И
идентификатор 16 именование 16 инкапсуляция 7 инкремент 20
интегрированная среда разработки 208, 214 главного меню 208 инспектор объектов 208
палитра компонентов 208 панель инструментов 208 редактор кода 209 редактор форм 208
исключения выброс 191
генерирование исключения 194 синхронные 191
исключительные ситуации 191 итератор 182
К
кириллические символы 15
класс 86, 87, 90, 95
базовый 105 базовый наследник 90
непосредственный базовый 105 объектов 88 описание 95
параметризованный 180 потока
стандартные 139 производный 105
классы иерархия 88, 105
ключевые слова 16 кодировка 221
проблема несовместимости 222 комментарий 11, 16 компилятор 219 константа 22
литеральная 25 символическая 22, 25 символьная 23, 26 числовая 25
конструктор 91, 99, 108 контейнер 177
Л
Литерал символьный 23
М
макрос определение 77
отмена определения 79 макросредства 78 манипулятор 147
без параметров 148 пользовательский 155 с параметрами 150
массив 41 двумерный 47
как параметр функции 70 динамический 47, 72
как параметр функции 72
имя 56, 69
инициализация 42 как параметр функции 57 одномерный 67 описание 41
указателей одномерный 73 указателей на массив 71
меню 214 Component 216 Database 216 Edit 215
File 214 Project 215, 216 Run 216 Search 215 View 215
Workgroups 216 метод 89,211
внешнее описание 102, 103,108 модификатор статуса доступа 106 модуль
исполняемый 10 исходный 10 объектный 10
Н
набор символов 221 наследование 7, 89
множественное 110 наследник 105 одиночное 107
О
область видимости 27, 29 общедоступный 95 объект 86, 88
доступ к компонентам 97 иерархия 105
использование 98 объявление 97 свойства 211 уничтожение 101
ООП достоинства 92 недостатки 93
операнд 17 оператор 20
объявления 21 присваивания 21 условный 31
операции 17 вставки 142 выбора 89 извлечения 142
косвенной адресации 43 логические 20 определения адреса 42 перегрузка 119, 121 поразрядные логические 20 порядок выполнения 18 стандартные
ограничения перегрузки 120 перегрузка 118 переопределение 119
указание области видимости 188 условия ?: 32
П
память выделение 48
панель инструментов 217 параметр-индикатор 59 переменная 22
автоматическая 27 внешняя 28 глобальная 62 логическая 23 локальная 62 регистровая 28 ссылочного типа 46 статическая 28 характеристики 29
поле 89