Математика

Физика

Химия

Биология

Техника и    технологии

ПРАКТИЧЕСКИЙ КУРС TURB0C-Turbo C++ Москва 1993 236
ПРАКТИЧЕСКИЙ КУРС TURB0C-Turbo C++ Москва 1993 236
Содержание
Глава 1 Введение в Turbo C++.........................................1
Концепция объектно-ориентированного программирования............1
Определение основных понятий.......................................................1
Развитие концепций программирования..........................................1
Стоит ли игра свеч?.........................................................................4
От Си к C++.....................................................................................5
C++и ANSI С...................................................................................6
Использование прототипов функций................................................6
Ключевое слово void.........................................................................8
Классы памяти volatile и const..........................................................9
Регистровые переменные...............................................................10
Директивы «pragma.......................................................................11
От Turbo С к Turbo C++..................................................................13
VROOMM........................................................................................13
Поддержка встроенного языка ассемблера....................................13
Простые типы, не относящиеся к классам.....................................14
Строгий контроль типов.................................................................14
Операция ссылки............................................................................15
Объявления в блоках......................................................................17
Подставляемые функции................................................................18
Ключевые слова new и delete.........................................................19
Расширенная роль const.................................................................20
Операция разрешения контекста...................................................20
//Комментарии..............................................................................20
Анонимные объединения.'...............................................................21
Перегружаемые функции................................................................21
Классы............................................................................................23
Классы в Си....................................................................................24
Компенсация недостатков структур при помощи классов..............26
Пример класса - Address................................................................29
Конструкторы и деструкторы.......................................................... 30
Формат конструктора и деструктора..............................................31
Создание и уничтожение объектов.................................................31
Перегружаемые операции..............................................................34
Наследование.................................................................................38
Инициализация производных классов............................................39
Пример полного класса - BusinessAddress.....................................40
Множественное наследование.......................................................41
Рекомендации по использованию производных классов................41
виртуальные функции - полиморфизм...........................................41
Ввод-вывод потоком.......................................................................43
Заключение....................................................................................46
Содержание______________________ ____Ц
Глава 2 Простыв типы и перегружаемые функци!и_С++ •• 47
Строгий контроль типов.................................................................47
Объявление простых типов................................................"'..........47
Типизованные выражения................................................","...........51
Адресация в процессорах семейства 80x86...................................52
Объявления указателей в C++.......................................................57
Указатели и их значения по умолчанию..........................................60
Предварительные объявления........................................................61
Пустые указатели...........................................................„,„.............61
Сверхбольшие (huge) объекты........................................,.............. 62
Операция ссылки..........................................................'..,,.............62
Ссылочные типы.............................................................^т..............64
Функции со ссылочными аргументами.............................-,.............65
Ссылочные функции.........................................................5;:.............66
Передача констант в качестве ссылочных аргументов....................67
Объявление переменных в блоках....................................4............68
Подставляемые функции..................................................t.............69
Вопросы эффективности....................................................,...........70
Проблемы, связанные с подставляемыми функциями....................71
Когда функция не может быть подставляемой...............................72
Ключевые слова new и delete.........................................................73
Перегружаемые функции...............................................................75
Компоновка по дополненным типами именам функций..................78
Компоновка C++ с модулями на Си...............................................81
Заключение....................................................................................83
Глава 3 Классы.............................................................. 83
Организация классов в C++...........................................................83
Что такое this?........................................................................А......86
Массивы объектов класса......................................................,........ 88
Указатели на компоненты класса...................................................90
Статические компоненты класса....................................................92
Компоненты перечислимого типа...................................................94
Друзья классов...............................................................................95
Объединения.................................................................................. 97
Конструкторы и деструкторы..................-....................................... 98
Конструкторы..........................................................................,,.„.. 98
Конструкторы по умолчанию...................................................iv'»... 99
Прочие конструкторы.........................................................,....$*., 100
Константы класса....................................................................:^.',1,0Й
Конструкторы копирования-инициализации.............................ш.102
Инициализация объекта другим объектом того же класса.......ЖЯОЗ
Передача объекта по значению................................................«я»03
Возврат объекта по значению...............................................
Как это реализуется.............................................................,
Создание компонентных объектов.........................................
Конструкторы и new.....................'..............................................*Bf~
Вызов new из конструктора.........................................................ш&\
Деструкторы..........................................................................
_/Н_______________________'__________________Содержание
Вызов деструкторов.....................................................................114
Удаление компонентных объектов................................................115
Виртуальные деструкторы............................................................116
Инициализация объектов других типов........................................117
Выполнение функции до и после main().......................................118
Глобальные конструкторы............................................................118
Функция atexit()............................................................................118
Директивы # pragma начальной загрузки и выхода......................119
Порядок выполнения....................................................................120
Заключение..................................................................................120
лава 4 Перегруженные операции................................121
Эперациир++..............................................................................122
Эперации-друзья или компонентные операции?..........................125
Эперации приведения типов........................................................128
Виртуальные массивы..................................................................130
Виртуальный файловый массив....................................................131
Виртуальные массивы в расширенной памяти типа EMS.............133
Перегрузка new и delete...............................................................142
Простая операция operator new()..................................................142
Поставная операция operator new()..............................................,145
Структуры переменного размера.................................................147
Заключение..................................................................................148
лаве 5 Наследование классов.....................................149
Простое наследование.................................................................149
унаследованным компонентам.......................................150
оры для производных классов.......................................152
ные классы и объемлющие классы................................153
;ы....................................................................................154
связных списков............................................................156
изм...............................................................................160
_ _ isAQ................................................................................162
Второй пример связного списка...................................................163
ные классы.....................................................................166
венное наследование.....................................................167
ование множественного наследования............................167
ция множественного наследования..................................168
начность объектов...........................................................168
'значность классов.............................................................170
базовых классов...............................................................171
!зные списки.......................................................................173
!ие с объемлющим классом................................................173
!ие с множественным наследованием.................................175
льное наследование..........................................................176
ение..................................................................................178
6 Потоки ввода-вывода.......................................178
h-вывод стандартного языка Си..............................................178
Ьые версии потоков C++........................................................179
Содержание
Потоки C++ 2.0...............................................
Операции вставки в поток...............................
Типы операций вставки...................................
Управление форматом....................................................;
Буферизация...................................................................
Операции вставки, определяемые пользователем Манипуляторы, определяемые пользователем,
с ограниченными типами аргументов.....................
Манипуляторы, определяемые пользователем,
с общими типами аргументов................................
Операции извлечения из потока.................................!....j
Операции извлечения, определяемые пользователем.....i
Ввод-вывод в файлы............
Файлы пользователя
Поиск в потоке.........
Привязка потоков........
Указатели на потоки....
/I
17J 181 18с
Обработка ошибок в потоках.............................................ж......
Прочие компонентные функции потоков............................$........
Смешанный ввод-вывод с использованием stdio..........................
Ввод-вывод в оперативной памяти...............................................
Заключение ...................................................................................
Глава 7 Средства Turbo C++ для опытных пользователей .....
Использование VROOMM..................................................,,.....;,..
Встроенный язык ассемблера......................................................
Псевдо-регистры и функция geninterruptQ.......................
Ключевое слово asm.........................................................
Функция _emit_...............................................................
Функции прерывания.......................................................
Специальные формы управления потоком |
выполнения программы..........................................................,':
Сигналы............

213
Обработчик команды Control-Break, Заключение.......................
Соглашения М
В данной книге выполняются соглашения об именах, предлагаемые фирмой Borland. Все имена объектов целиком пишутся строчными буквами, за следующими исключениями: ti
- Имена структур, классов и объединений начинаются с заглавно| буквы (например, struct Base). U *
- Имена, задаваемые директивами 9 define, полностью т заглавными буквами (например, «define MAXARG3). |
- В именах, состоящих из нескольких слов, все слова, за искл! нием первого, начинаются с большой буквы (например, baseObji
- Имена переменных типа указатель заканчиваются словом Ptr I пример, baseObjectPtr).
Глава 1 • Введение в Turbo C++
Глава 1 Введение в Turbo C++
Данная глава начинает изучение Turbo C++. В начальных разделах левы рассматриваются концепции, которые легли в основу объектно-|рйентированного программирования. Далее речь идет о средствах, никальных для C++.
Сонцепцмя объектно-ориентированного программирования
Язык C++, неразрывно связанный с концепцией объектно-ориенти-юванного программирования, явился результатом включения объек-но-ориентированных средств в язык программирования Си. Прежде ем мы сможем понять C++, нам необходимо вникнуть в саму идею бъектно-ориентированного программирования.
)првд«лвние основных понятий
Объектно-ориентированные языки обычно определяют следующим бразом: «Язык программирования является объектно-ориентирован-ЫМ, если он поддерживает четыре конкретных объектных свойства, азываемых абстракцией, инкапсуляцией, наследованием и полимор-)Измом.». Это определение требует некоторых пояснений.
Объектно-ориентированное программирование представляет собой арадигму программирования. Парадигма программирования - это истема взглядов, с учетом которой решаются задачи программиро-ания
Говорят, что язык программирования является объектно-ориенти-званным, если он поддерживает объектно-ориентированную пара-.ипмуШразумеется, термин «поддерживает» здесь относителен. В свое пвиШорили, поддерживает ли язык ассемблера структурное про-ование, на том основании, что на этом языке может быть «структурированный код. Однако, как правило, язык ассембле-•» не считает языком структурного программирования. Бьерн „>уп, «отец» C++, формулирует это так: «Говорят, что язык про-(рования поддерживает некоторый стиль программирования, | обеспечивает средства, делающие использование этого стиля
lil»
дела, универсальный язык программирования не может > тот или иной стиль программирования. Кто не слышал утвер-типа: «Я могу на любом языке писать, как на Фортране.»? мер, вполне можно создавать неструктурированные программы але, хотя именно Паскаль считается образцовым языком струк-) программирования. Действительно, Паскаль имеет оператор отя использование этого оператора принято считать антитезой "рного программирования. C++ является объектно-ориентиро-i языком, поскольку он поддерживает объектно-ориентирован-Нарадигму.
ритме концепций программирования
лая ранняя парадигма программирования может быть охаракте-ана как хаотическая. Здесь разработчик все усилия направляет Ьсредственно на решение проблемы, не задумываясь о том, каким

Цена: 200руб.

Назад

Заказ

На главную страницу

Hosted by uCoz