Программирование на C++

Page 1

Под ред. проф. А. Д. Хомоненко ПРОГРАММИРОВАНИЕ НА 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. Общие сведения о функциях 5.2. Получение нескольких результатов 5.3. Функции с переменным числом параметров 5.4. Рекурсивные и подставляемые функции 5.5. Области действия переменных 5.6. Библиотечные функции 6. Массивы в качестве параметров функций 6.1. Одномерные массивы 6.2. Многомерные массивы 6.3. Динамические массивы 7. Использование препроцессора 7.1. Общие сведения 7.2. Определение и обработка макросов 7.3. Включение файлов 7.4. Условная компиляция Часть II. Объектно-ориентированное программирование 8. Введение в объектно-ориентированное программирование 8.1. Структурный подход в программировании 8.2. Концепции объектно-ориентированного программирования 8.3. Этапы объектно-ориентированного программирования 9. Классы и инкапсуляция 9.1. Описание класса 9.2. Создание и использование объектов 9.3. Конструкторы и деструкторы 9.4. Пример создания и использования класса 10. Наследование 10.1. Управление доступом производных классов 10.2. Одиночное наследование 10.3. Множественное наследование 11. Полиморфизм 11.1. Перегрузка функций 11.2. Выбор экземпляра функции 11.3. Перегрузка стандартных операций 11.4. Виртуальные функции 12. Основы организации ввода-вывода 12.1. Классификация средств ввода-вывода 12.2. Принципы работы с потоками и файлами 12.3. Форматированный ввод-вывод базовых типов 12.4. Манипуляторы 12.5. Флаги состояния потока 12.6. Связывание потоков 13. Дополнительные возможности ввода-вывода 13.1. Форматированный ввод-вывод пользовательских типов 13.2. Файловый ввод-вывод

53 56 57 60 62 63 67 67 70 72 77 77 77 79 79 83 83 87 92 95 95 97 99 101 105 105 107 110 115 115 117 118 130 :135 135 136 142 147 150 151 153 153 155


13.3. Неформатированный ввод-вывод 13.4. Обмен со строкой в памяти 13.5. Использование библиотеки stdio 14. Шаблоны 14.1. Параметризованные функции 14.2. Параметризованные классы 14.3. Стандартная библиотека шаблонов 15. Дополнительные возможности C++ 15.1. Пространство имен 15.2 Обработка исключений 15.3. Динамическая идентификация типов 15.4. Приведение типов 16. Разработка приложений в Borland C++ Builder 16.1. Общая характеристика системы 16.2. Библиотека классов системы 16.3. Интегрированная среда разработки 16.4. Создание приложений Приложение Ключевые слова Предметный указатель Литература Предметный указатель Символы #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

160 163 165 177 177 180 181 187 187 191 198 203 207 207 209 214 218 228 228 243 249


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


полиморфизм 7, 90 динамический 116 статический 115 поток 136 анализ состояния 151 связывание 151 создание нескольких потоков 158 стандартный ввода-вывода 138 переназначение 159 стиль работы 147 препроцессор 77 приложения Windows 223 консольные 219 приоритет 18 программа-утилита 10 программирование модульное 84 структурное 84 программы создание 9 проект 215 пространство имен 187 безымянное 189 процедурно-ориентированный стиль 84 Р разветвления 31 редактор кода 221 родственные отношения 90 С связывание позднее 91, 133 раннее 90, 133 сигнатуры 116 система программирования 9 сложность 83 событие 211 состояние 140 спецификаторов доступа 95 ссылка 43 независимая 44 строка 67 работа с динамической строкой 164


строковая константа 26 структура FILE 171 структуризация 84 структурный подход 84 схема генерации исполняемого файла программы 219 Т тип абстрактный 95 базовый 22 данных 21, 85 структурный 85 дерево классификации 23 динамическая идентификация 198 динамическое приведение 203 производный 22 скалярный 22 структурный 22 У указатель 42 адреса константный 56, 69 базового класса 131 управляющие символы 15 условная компиляция 79 устройства файловые 139 Ф файл 136 бинарный 137 заголовочный 11 главной формы 223 исходный главной формы 223 проекта 223 конец 140 копирование 156 подключаемый 10 проекта информационный 223 режимы работы 157 ресурсов главной формы 223 приложения 223 стандартный заголовочный 79


текстовый 137, 162, 172 флаг состояния 150 состояния потока 140 форматирования 140 функции 53 без возвращаемого значения 55 библиотечные 63 виртуальные переопределение 131 выбор экземпляра 117 вызов 17, 54 главная 53 графические 64, 65 математические 63, 64 операторные 119 прототип 119 описание 53 параметризованные 177 параметры 54, 62 перегрузка 116 подставляемые 61 прототип 12, 54 рекурсивные 60 с переменным числом параметров 57 тело 12, 53 Ц циклы 33 вложенные 36 выбор 36 с параметрами 34 с постусловием 35 с предусловием 34 Ш шаблон 177 стандартная библиотека 181 Э элемент данных 89 элемент-функция 89




























































































































































































































































Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.