Математика | ||||
C++ изнутри-Ричард Вайнер Киев: «ДиаСофт», 1993. - 304 с., ил. | ||||
Ричард Вайнер, Льюис Пинсон
С 78 C++ изнутри. Пер. с англ. - Киев: «ДиаСофт», 1993. - 304 с., ил. ISBN 5-87554-079 Эта книга представляет собой набор примеров с сопровождающими объяснениями, которые иллюстрируют наиболее важные возможности языка C++ версии 2.0 с концентрацией на решении объектно-ориентированных проблем. Программисты, желающие использовать C++, смогут значительно ускорить процесс изучения, если будут иметь перед глазами хорошо написанные программы, сопровождаемые ясными коментариями, которые позволяют шаг за шагом освоить приемы программирования на C++. Основная цель книги состоит в демонстрации преимуществ объектно-ориентированного программирования и в поощрении использования объектно-ориентированных возможностей C++. Подробно рассматриваются новейшие возможности C++, включая множественное наследование, которому посвящен целый раздел, содержащий множество примеров. В книге имеется ряд вопросов "Что если", которые предвосхищают те вопросы, которые могут возникнуть у читателя. Эти вопросы позволяют более детально изучить рассматриваемый предмет. Целью книги является дополнение растущего множесва книг по C++. Эта книга предназначена для профессиональных программистов, специалистов по компьютерам, студентов, изучающих компьютеры, руководителей групп программистов и иженеров желающих в полной мере использовать возможности языка C++. ПРЕДИСЛОВИЕ Эта книга представляет собой набор примеров с сопровождающими объяснениями, которые иллюстрируют наиболее важные возможности языка C++ версии 2.0 с ориентацией на решении объектно-ориентированных проблем. Мы уверены, что программисты, изучающие C++, смогут значительно ускорить процесс изучения, если будут иметь перед глазами хорошо написанные программы, сопровождаемые ясными коментариями, которые позволяют шаг за шагом освоить приемы программирования на C++. В книге сделан упор на объектно-ориентированную методологию. Для объяснения объектно-ориентированного конструирования приводятся исследования различных ситуаций. Основная цель книги состоит в демонстрации преимуществ объектно-ориентированного программирования и в поощрении использования объектно-ориентированных возможностей C++. Подробно рассматриваются новейшие возможности C++, включая множественное наследование, которому посвящен целый раздел, содержащий множество примеров. В книге имеется ряд вопросов "Что если", которые предвосхищают те вопросы, которые могут возникнуть у читателя. Эти вопросы позволяют более детально изучить рассматриваемый предмет. Целью "Программирования на C++" является дополнение растущего множесва книг по C++. Эта книга не дублирует нашу предыдущую книгу "Введение в объектно-ориентированное программирование и C++" или справочник Страустрапа "Язык программирования C++". Данная книга предполагает, что читатель хорошо знаком с содержанием одной из упомянутых книг. Эта книга предназначена для профессиональных программистов, специалистов по компьютерам, студентов, изучающих компьютеры, руководителей групп программи- Оглавление Предисловие ? Глава 1. C++ и объектно-ориентированное програм- 7 мирование 1.1 Введение 7 1.2 Объект, обобщение, класс, экземпляр объекта и метод 9 1.2.1 Определения 9 1.2.2 Выражения: передача сообщений объектам 11 1.2.3 Создание объектов и инициализация данных состояния 12 1.3 Абстракция, инкапсуляция, наследование и полиморфизм: че 13 тыре основных свойства 1.3.1 Абстракция и инкапсуляция 14 1.3.1-1 Объекты в свете инкапсуляции и абстракции 14 1.3.1 -2 Протокол описания класса: поля данных и функции 15 члены 1.3.2 Наследование 16 1.3.2-1 Иерархия классов против зависимости классов 17 1.3.2-2 Одиночное наследование, базовые и производные 18 классы 18 КЛЭДЛЛМ 1.3.2-3 Множественное наследование и виртуальные базовые классы 1.3.3 Полиморфизм 18 1.3.3-1 Перегрузка функций 19 1.3.3-2 Перегрузка операций 19 1.3.3-3 Виртуальные функции и позднее связывание 20 1.3.3-4 Семейства 21 1.4 Дополнительные объектно-ориентированные свойства 21 Глава 2. Дополнения к С 23 2.1 Ограничители комментариев * 23 2.2 Прототипы функций 23 2.3 Операция расширения области видимости 25 2.4 Объявления в операторах 26 2.5 Перегрузка функций 26 2.6 Значения формальных параметров по умолчанию 29 2.7 Ссылки и параметры ссылки 31 2.8 Спецификатор inline 37 ___ж----U*V|S blfllM 2.10 Спецификатор enum 2.11 Операции new и delete 2.12 Связывание с 2.13 Указатель на void Глава 3. Описания протокола класса 3.1 Описание класса 3.1.1 Компоненты описания класса 3.1.2 Введение в потоковые классы 3.1.3 Зарезервированное слово this 3.2 Первый пример класса 3.2.2 Проверку протокола класса First 3.3 Создание объектов С-типов: второй пример класса 3.3.1 Класс Integer: протокол описания класса 3.3.2 Класс Integer, тестовая программа 3.4 Разделение прототипов и определений для функций-членов класса: третий пример описания класса 3.4.1 Класс Fraction: прототипы 3.4.2 Класс Fraction: определения 3.4.3 Класс Fraction: тестовая программа 3.5 Указатели на объекты и использование операции new 3.5.1 Класс StringHolder: прототип и определение 3.5.2 Класс StringHolder: тестовая программа 3.6 Конструкторы и массивы объектов 3.7 Инициализация полей и статических переменных ''лава 4. Дружественные функции и перегрузка операций 4.1 Перегрузка операций 4.2 Дружественные функции 4.3 Оператор присваивания *.4 Присваивание против инициализации 4.4.1 Присваивание 4.4.2 Инициализация .5 Перегруженные операции - функции-члены против дружественных функций .6 Перегруженные операции new, delete и -> ! 4.6.1 Операции new и delete < 4.6.2 Операция-> К 7 Контейнерные классы 4.7.1 Анализ результатов работы 111 4.8 И снова класс Integer 118 Глава 5. Преобразование типов 122 5.1 Операции преобразования типов 122 5.2 Неявное преобразование типов 132 5.3 Еще о преобразовании типов 136 5.4 Достижение высокой эффективности 141 Глава 6. Производные классы: одиночное наследо- 145 вание 6.1 Производные классы и правила наследования 145 6.2Открытыеизакрытыепроизводныеклассы:первыедвапримера 147 производных классов 6.3 Правила доступа для juzaccoe и объектов 154 6.3.1 Защищенные части классов 157 6.3.1-1 Доступ к протоколу класса 157 6.3.1 -2 Доступ через протокол производного класса 157 6.3.1-3 Доступ через объекты класса 157 6.3.1-4 Доступ через объекты public-производного класса 158 6.3.1-5 Доступ через объекты private-производного класса 159 6.3.2 Защищенная часть классов 159 6.3.2-1 Доступ через протокол класса 160 6.3.2-2 Доступ через протокол производного класса 160 6.3.2-3 Доступ через объекты класса 160 6.3.2-4 Доступ через объекты public-производного класса 160 6.3.2-5 Доступ через объекты private-производного класса 160 6.3.3 Открытая часть классов 161 6.3.3-1 Доступ через протокол класса 161 6.3.3-2 Доступ через протокол производного класса 161 6.3.3-3 Доступ через объекты класса 161 6.3.3-4 Доступ через объекты public-производного класса 162 6.3.3-5 Доступ через объекты private-производного класса 162 6.3.4 Обобщение правил доступа для классов и объектов закры- 162 тых, защищенных и открытых частей описания класса 5-4 Иерархии классов против контейнерных классов 163 6.4.1 Собака "является" псовым, но "содержит" хвост 163 6.4.2 Типичный пример использования иерархии класса 168 6.4.3 Типичный пример использования контейнерных классов 172 '•5 Правила доступа для друзей классов и производных классов Цена: 150руб. |
||||