Математика | ||||
Просто и ясно о Borland C++-Бруно Бабэ Москва 1996 416 с.: ил | ||||
Бруно Бабэ
Просто и ясно о Borland C++: Пер. с англ. — М.: БИНОМ. — 416 с.: ил. ISBN 1-56686-134-9 ISBN 5-7503-0098-6 Книга представляет собой пособие по программированию на языке C++, ориентированное на использование компилятора Borland C++ 4.x. Особое внимание уделяется нововведениям в ANSI C++, таким, как шаблоны или управление исключениями. Сжатые формальные описания языковых конструкций сопровождаются подробными примерами кода. В книге дается также вводная информация по среде Borland C++, помогающая пользователю быстро освоиться с компилятором. В конце книги имеется раздел, отражающий изменения в последнем продукте серии Borland C++ 5.0. Книга предназначена как для опытных программистов, переходящих на объектно-ориентированную технологию, так и для начинающих программистов, осваивающих среду Borland C++. Содержание Введение........................................................................................16 Как организована эта книга........................................................16 1 Borland C++: основы.................................................................17 Использование инструментария.................................................18 Роль компилятора, библиотекаря и редактора связей...................18 Работа в интегрированной среде Borland C++...............................20 Интегрированная среда — программа из одного модуля........21 Проекты и многомодульные программы...................................23 Построение нескольких целевых модулей.......................................25 Проект для DLL и исполняемого модуля.................................27 Использование инструментальных средств с командной строкой........................................................31 Файлы конфигурации..................................................................32 Создание целевых модулей для Windoes....................................33 Создание приложений для Windows.....................................33 Windows 3.1 (16)......................................................................34 Win32......................................................................................35 Создание динамической библиотеки для Windows.............35 Компиляторы и компоновщики ресурсов.................................36 Компилятор и утилиты для файлов Help (Помощь)................37 Модификация существующего кода для Borland C++.............38 Три типа char......................................................................................38 Варианты с массивами операторов new и delete.............................39 Оператор new и исключительные ситуации (Exceptions)...............39 Применение функций longjmp и setjmp...........................................41 Переименованные глобальные переменные....................................41 Заключение...................................................................................42 2 Язык С........................................................;............................43 Простая программа на С.............................................................43 Составные части программы............................................................46 Комментарии................................................................................46 Директива #include и заголовочные файлы..............................47 Функция main..............................................................................47 Формат функции................................................................................47 Представление информации в языке С.....................................48 Константы..........................................................................................48 Простые типы данных.......................................................................50 Переменные........................................................................................51 Типизованные константы.................................................................51 Функции.............................................................................................52 Ввод и вывод................................................................................52 Спецификация преобразования............................................53 Escape-последовательность....................................................55 Функции scanf, gets, atoi, atol и atof...........................................57 Пример функции...............................................................................58 Прототип функции......................................................................58 Определение функции.................................................................59 Выражения и операции.....................................................................60 Условные операторы и циклы..........................................................64 Применение операторов if и else................................................65 Применение операторов switch и case.......................................67 Оператор while.............................................................................69 Пустой оператор..........................................................................70 Оператор for.................................................................................70 Цикл do/while...............................................................................71 Прерывание выполнения блока.................................................73 Применение операторов goto и меток.......................................75 Область действия переменных....................................................76 Локальные переменные.....................................................................76 Глобальные переменные...................................................................77 Видимость переменных.....................................................................78 Время жизни переменной.................................................................78 Модификаторы переменных.............................................................79 Изменяющиеся переменные.............................................................79 Массивы..............................................................................................80 Указатели............................................................................................81 Массивы и указатели.........................................................................84 Типы, определяемые пользователем..........................................86 Переименование типов.....................................................................86 Перечисляемые типы.........................................................................87 Структуры..........................................................................................88 Объединения......................................................................................90 Битовые поля.....................................................................................91 Заключение........................................................................................92 Директивы препроцессора..........................................................93 Макросы: #defme..............................................................................93 Вложенные макросы...............................................................................94 Символ продолжения строки.................................................................94 Аннулирование макроса.........................................................................95 Макрос как аргумент компилятора.......................................................95 Преобразование в строку (#)..................................................................96 Склейка лексем (##)...............................................................................97 Предостережения.....................................................................................97 Директива ^include...........................................................................99 Условная компиляция......................................................................99 Оператор defined....................................................................................101 Директивы #ifdef и #ifndef....................................................................102 Директива #error.............................................................................103 Директива #line...............................................................................103 Директива #pragma.........................................................................104 Предопределенные макросы..........................................................107 Макросы ANSI......................................................................................107 Макросы Borland C++..........................................................................109 Типичное применение директив препроцессора.........................ПО Предотвращение многократных включений файла-заголовка..........111 Простое исключение секций кода.......................................................111 Обеспечение правильной установки параметров компиляции.........112 Диагностические макросы....................................................................113 Заключение......................................................................................113 Расширения языка С................................................................114 Сегменты.........................................................................................115 Модели памяти......................................................................................116 Короткие и длинные указатели............................................................118 Указатели типа Huge.............................................................................119 Указатели huge в DOS...........................................................................120 Указатели huge в Windows...................................................................121 Макросы для обращения с указателями............................................122 Который из сегментов?........................................................................122 Модификаторы переменных..........................................................124 far........................................................................................................124 Недостатки шаблонов.....................................................................302 Заключение......................................................................................303 Управление исключениями............'............................................305 Исключения и стек.........................................................................306 Работа с управлением исключениями языка C++.......................309 Применение try......................................................................................310 Применение catch..................................................................................310 Применение throw.................................................................................311 throw с операндом..................................................................'.........311 throw без операнда..........................................................................313 Перехват throw.......................................................................................313 Поиск соответствующего типа исключения.......................................318 Применение terminate() и неуправляемые исключения....................321 Работа со спецификациями исключений............................................321 Работа с непредусмотренными исключениями..................................322 Работа с констукторами и исключениями..........................................323 Локальные объекты.........................................................................323 Динамические объекты...................................................................326 Работа с иерархиями исключений.......................................................330 Работа с предопределенными классами исключений........................322 xmsg....................'...............................................................................322 xalloc.................................................................................................333 Bad_cast и Bad_typeid......................................................................335 Использование информации о местонахождении исключения...........335 Исключения и опции компилятора.....................................................337 Обзор структурного управления исключениями................................339 Использование кадрированного управления исключениями (_try/_except)......................................................................339 Заявление исключения.........................................................................340 Поток управления...........................................................................341 Фильтрующее выражение...............................................................342 Перехват исключений процессора.......................................................344 Применение завершающих обработчиков исключений (_try/_fmally)......................................................................346 Нормальное и аномальное завершение...............................................347 Использование структурного управления и управления исключениями C++........................................350 Заключение......................................................................................350 10 Информация о типе во время исполнения и операции приведения типа.................................................351 Программирование с использованием RTTI...........................352 Операция typeid и класс Type_info.................................................352 Исключение Bad_typeid...................................................................352 Применение typeid для сравнения типов......................................353 Использование Type_info................................................................355 Type_info::before(const Type_info&)..........................................356 Type_info::name()........................................................................357 Использование RTTI и опции компилятора.................................357 Модификатор__rtti.........................................................................358 Новый стиль приведения типов...............................................359 Обзор новых форм приведения типов...........................................360 Применение dynamic_cast...............................................................363 Рассмотрение примера с dynamic_cast.....................................364 Нисходящее приведение виртуального базового класса........366 Перекрестное приведение типа................................................368 Использование static_cast................................................................369 Использование const_cast................................................................372 Использование reinterpret_cast........................................................373 Заключение.................................................................................374 11 Borland C++: дополнительные возможности и расширения.......375 Библиотеки.................................................................................376 OWL..................................................................................................376 BWCC................................................................................................377 VBX...................................................................................................378 OLE 2 и OCF..............................................................................378 Инструменты..............................................................................379 Resource Workshop............................................................................380 AppExpert и ClassExpert...................................................................380 Компиляция и компоновка.......................................................381 Заключение.................................................................................382 12 Borland C++ Development Suite. Version 5.0..............................383 Общие сведения.........................................................................383 32-битная среда разработки......................................................384 Что такое ObjectScript?..............................................................385 Нововведения в C++.................................................................386 Цена: 150руб. |
||||