Главная C++ » Файлы » Учебники » C++ [ Добавить материал ]

Стивен Прата, программирование на Си++ 2005г

[Скачать удаленно (29,5mb)] 30.10.2009, 22:35
Книга по Си++ как для новичков, так и для профессионалов. Книга очень толстая и в доскональных подробностях описывает особенности языка C++, а так же о программировании в целом. Однозначно лучший выбор, если вы собрались на профессиональном уровне изучать язык Си...

Краткое содержание

  • Предисловие
  • Глава 1. Начальные сведения
  • Глава 2. Приступаем к изучению языка С++
  • Глава 3. Представление данных
  • Глава 4. Составные типы данных
  • Глава 5. Циклы выражения сравнения
  • Глава 6. Операторы ветвления и логические операции
  • Глава 7. Функции языка С++
  • Глава 8. Работа с функциями
  • Глава 9. Модели памяти и пространства имен
  • Глава 10. Объекты и классы
  • Глава 11. Работа с классами
  • Глава 12. Классы и динамическое распределение памяти
  • Глава 13. Наследование классов
  • Глава 14. Повторное использование программного кода С++
  • Глава 15. Дружественные конструкции, исключения и прочее
  • Глава 16. Класс string и стандартная библиотека шаблонов
  • Глава 17. Ввод вывод данных и работа с файлами 
  • Приложения

Полное содержание

  • Предисловие
  • Глава 1. Начальные сведения
    • Изучение языка Си++
    • Философия программирования, заложенная в языке Си++
    • Объектно-ориентированное программирование
    • Обобщённое программирование
    • История языка Си++
    • Переносимость и стандарты
    • Методика создания программ
    • Создание исходного кода
    • Компиляция и компоновка
    • Соглашения, используемые в этой книге
    • Наша система
  • Глава 2. Приступаем к изучению языка С++
    • Начальные сведения о языке C++
    • Функция main()
    • Комментарии в языке С++
    • Препроцессор С++ и файл iostream
    • Имена заголовочных файлов
    • Пространства имен
    • Вывод данных в языке С++ с использованием объекта cout
    • Форматирование исходного кода С++
    • Стиль форматирования исходного кода программ на С++
    • Дополнительные сведения об операторах языка С++
    • Операторы объявления и переменные
    • Оператор присваивания
    • Важный момент, связанный с объектом cout
    • Еще несколько операторов языка С++
    • Применение объекта cin
    • И снова объект cout
    • Несколько слов о классах
    • Функции
    • Применение функций с возвращаемым значением
    • Разновидности функций
    • Функции, определяемые пользователем
    • Определяемая пользователем функция с возвращаемым значением
    • Основные сведения об операторах
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 3. Представление данных
    • Простые переменные
    • Имена переменных
    • Целочисленные типы данных
    • Типы данных short int и long
    • Типы данных без знака
    • Какой тип выбрать?
    • Целочисленные константы
    • Определение типа константы в языке С++
    • Тип данных сhar: символы и малые целые числа
    • Универсальные имена символов
    • Новый тип данных bool
    • Квалификатор const
    • Числа с плавающей точкой
    • Запись чисел с плавающей точкой
    • Типы данных с плавающей точкой
    • Константы с плавающей точкой
    • Преимущества и недостатки типов данных с плавающей точкой
    • Арифметические операции языка С++
    • Приоритет операций и ассоциативность
    • Разновидности операции деления
    • Операция деления по модулю
    • Преобразования типов данных
    • Преобразования данных в выражениях
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 4. Составные типы данных
    • Краткий обзор массивов
    • Правила инициализации массивов
    • Строки
    • Конкатенация строк
    • Использование строк в массиве
    • Смешанный ввод строк и чисел
    • Краткий обзор структур
    • Другие свойства структур
    • Массивы структур
    • Битовые поля
    • Объединения
    • Перечисления
    • Установка значений перечислителей
    • Диапазоны значений для перечислений
    • Указатели и свободная память
    • Объявление и инициализация указателей
    • Указатели и числа
    • Выделение памяти с помощью оператора new
    • Высвобождение памяти с помощью оператора delete
    • Использование оператора new для создания динамических массивов
    • Указатели, массивы и арифметика указателей
    • Указатели и строки
    • Использование оператора new для создания динамических структур
    • Автоматическое, статическое и динамическое выделение памяти
    • Автоматические переменные
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 5. Циклы и выражения сравнения
    • Обзор возможностей цикла for
    • Составные части цикла for
    • И опять о цикле for
    • Изменение шага цикла
    • Доступ к символам строки с помощью цикла for
    • Операторы инкремента (++) и декремента (--)
    • Комбинированные операторы присваивания
    • Составные операторы или блоки
    • Оператор "запятая" (или дополнительные синтаксические приемы)
    • Выражения сравнения
    • Типичная ошибка программирования
    • Сравнение строк
    • Цикл while
    • Сравнение циклов for и while
    • Пауза
    • Цикл do while
    • Циклы и ввод текста
    • Применение простого оператора cin для ввода данных
    • На помощь приходит функция cin.get(char)
    • Какую из функций cin.get() выбрать?
    • Условие конца файла
    • Еще одна разновидность функции cin.get()
    • Вложенные циклы и двумерные массивы
    • Инициализация двумерного массива
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 6. Операторы ветвления и логические операции
    • Оператор if
    • Оператор if else
    • Форматирование операторов if else
    • Конструкция if else if else
    • Логические выражения
    • Операция логическое ИЛИ: ||
    • Операция логическое И: &&
    • Операция логическое НЕ: !
    • Немного о логических операциях
    • Альтернативные представления
    • Библиотека символьных функций cctype
    • Оператор ?:
    • Оператор switch
    • Операторы switch и if else
    • Операторы break и continue
    • Циклы считывания чисел
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 7. Функции языка C++
    • Обзор функций
    • Определение функции
    • Создание прототипов и вызов функций
    • Аргументы функции и передача по значению
    • Функции с несколькими аргументами
    • Еще одна функция с двумя аргументами
    • Функции и массивы
    • Применение указателей в функциях, обрабатывающих массивы
    • Особенности использования массивов в качестве аргументов
    • Другие примеры функций, выполняющих обработку массивов
    • Функции, в которых используются диапазоны массивов
    • Указатели и спецификатор const
    • Функции и двумерные массивы
    • Функции и строки в стиле языка С
    • Функции, возвращающие строки
    • Функции и структуры
    • Передача и возврат структур
    • Еще один пример
    • Передача адресов структур
    • Рекурсия
    • Указатели на функции
    • Назначение указателя на функцию
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 8. Работа с функциями 330
    • Встроенные функции
    • Ссылочные переменные
    • Создание ссылочных переменных
    • Ссылки в роли параметров функции
    • Свойства и особенности ссылок
    • Использование ссылок при работе со структурами
    • Аргументы, принимаемые по умолчанию
    • Полиморфизм или перегрузка функций
    • Пример перегрузки функций
    • Когда целесообразно использовать перегрузку функций
    • Шаблоны функций
    • Перегружаемые шаблоны
    • Явные специализации
    • Специализация третьего поколения (стандарт C++ ISO/ANSI)
    • Создание экземпляров и специализация
    • Выбор функций
    • Пример использования правил частичного упорядочивания
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 9. Модели памяти и пространства имен
    • Раздельная компиляция
    • Управление заголовочными файлами
    • Классы памяти, диапазоны доступа и связывание
    • Диапазон доступа и связывание
    • Автоматический класс памяти
    • Переменные со статическим классом памяти
    • Статический класс памяти, внешнее связывание
    • Статический класс памяти, внутреннее связывание
    • Статический класс памяти, без связывания
    • Спецификаторы и классификаторы
    • Функции и связывание
    • Языковое связывание
    • Схемы распределения памяти и динамическое распределение
    • Пространства имен
    • Традиционные пространства имен языка C++
    • Новые свойства пространств имен
    • Пространства имен и будущее
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 10. Объекты и классы
    • Процедурное и объектно-ориентированное программирование
    • Абстрагирование и классы
    • Что представляет собой тип
    • Класс
    • Реализация функций-элементов класса
    • Использование классов
    • Что мы узнали на текущий момент
    • Деструкторы и конструкторы классов
    • Объявление и определение конструкторов
    • Использование конструктора
    • Конструктор, заданный по умолчанию
    • Деструкторы
    • Давайте усовершенствуем класс Stock
    • Обзор конструкторов и деструкторов
    • Работа с указателем this
    • Массив объектов
    • Диапазон доступа класса
    • Константы с диапазоном доступа класса
    • Абстрактные типы данных
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 11. Работа с классами
    • Перегрузка операций
    • Время в нашем распоряжении
    • Добавление операции сложения
    • Ограничения при выполнении перегрузки
    • Другие перегруженные операции
    • Использование дружественных структур
    • Создание дружественных конструкций
    • Общий вид дружественной конструкции: перегрузка операции <<
    • Перегруженные операции: дружественные функции или обычные?
    • Еще о перегрузке: класс Vector
    • Использование элементов состояния
    • Еще немного о перегрузке
    • Комментарий к реализации
    • Применение класса Vector к решению задачи случайного блуждания
    • Автоматические преобразования и приведение типов для классов
    • Функции преобразования
    • Преобразования и дружественные конструкции
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 12. Классы и динамическое распределение памяти
    • Динамическая память и классы
    • Обзорный пример и элементы статических классов
    • Неявные функции-элементы
    • Новый усовершенствованный класс String
    • Узелки на память: когда использовать оператор new в конструкторах
    • Применение указателей при работе с объектами
    • Обзор технических приемов программирования
    • Эмуляция очереди
    • Класс Queue
    • Класс Customer
    • Эмуляция
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 13. Наследование классов
    • Простой базовый класс
    • Порождение класса
    • Конструктор: доступ
    • Использование производного класса
    • Особые связи
    • Наследование - отношение is-a
    • Полиморфное открытое наследование
    • Разработка наших классов
    • Статическое и динамическое связывание
    • Совместимость типов указателей и ссылок
    • Виртуальные функции и динамическое связывание
    • Зачем нужны два вида связывания?
    • Как работают виртуальные функции
    • Что следует знать о виртуальных функциях
    • Управление доступом - protected
    • Абстрактные базовые классы
    • Применение концепции абстрактных базовых классов
    • Наследование и динамическое распределение памяти
    • Случай 1. В производном классе не используется оператор new
    • Случай 2. В производном классе используется оператор new
    • Пример наследования с динамическим распределением памяти
    • и дружественными конструкциями
    • Обзор структуры класса
    • Функции-элементы, которые генерирует компилятор 
    • Другие соображения по поводу методов класса
    • Соображения по поводу открытого наследования
    • Итоговый анализ функций класса
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 14. Повторное использование программного кода в C++
    • Классы, включающие элементы объектов
    • Класс ArrayDb
    • Пример класса Student
    • Закрытое наследование
    • Пример класса Student (новая версия)
    • Множественное наследование
    • Определение количества рабочих
    • Выбор метода
    • Некоторые итоги по теме множественного наследования
    • Шаблоны классов
    • Определение шаблона класса
    • Использование шаблонного класса
    • Более подробное рассмотрение шаблона класса
    • Шаблон массива и аргументы, не являющиеся типами
    • Универсальный характер шаблонов
    • Специализации шаблонов
    • Шаблоны-элементы
    • Шаблоны в качестве параметров
    • Шаблоны классов и дружественные элементы
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 15. Дружественные конструкции, исключения и прочее
    • Дружественные структуры
    • Дружественные классы
    • Дружественные функции-элементы
    • Другие дружественные отношения
    • Вложенные классы
    • Вложенные классы и доступ
    • Вложение в шаблоне
    • Обработка исключительных ситуаций
    • Примечания к программе
    • Механизм обработки исключительных ситуаций
    • Примечания к программе
    • Разносторонний характер исключений
    • Исключения и классы
    • Исключения и наследование
    • Класс exception
    • Исключение bad_alloc и оператор new
    • Проблемы, связанные с обработкой исключительных ситуаций
    • Замечание об исключениях
    • Библиотека RTTI
    • Назначение RTTI
    • Принципы функционирования RTTI
    • Операторы приведения типов
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 16. Класс string и стандартная библиотека шаблонов
    • Класс string
    • Создание строки
    • Реализация ввода в классе string
    • Работа со строками
    • Класс auto_ptr
    • Использование шаблона auto_ptr
    • Некоторые замечания относительно auto_ptr
    • Стандартная библиотека шаблонов
    • Шаблон класса vector
    • Операции, допустимые при работе с шаблонами vector
    • Дополнительные операции с векторами
    • Обобщенное программирование
    • Почему именно итераторы?
    • Типы итераторов
    • Типы контейнеров
    • Последовательности
    • Класс vector
    • Класс deque
    • Класс list
    • Класс queue
    • Класс priority_queue
    • Класс stack
    • Ассоциативные контейнеры
    • Функциональные объекты (функторы)
    • Концепции функторов
    • Предопределенные функторы
    • Адаптируемые функторы и функции-адаптеры
    • Алгоритмы
    • Группы алгоритмов
    • Общие свойства
    • STL и класс string
    • Функции и контейнерные методы
    • Использование STL
    • Другие библиотеки
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Глава 17. Ввод/вывод данных и работа с файлами
    • Обзор ввода/вывода данных в С++
    • Потоки и буферы
    • Потоки, буферы и файл iostream
    • Перенаправление
    • Вывод с помощью cout
    • Перегруженный оператор <<
    • Другие методы класса ostream
    • Очистка буфера вывода
    • Форматирование вывода с помощью cout
    • Ввод данных с помощью cin
    • Как cin >> рассматривает поток ввода
    • Состояния потока
    • Другие методы класса istream
    • Другие методы класса istream
    • Ввод/вывод файлов
    • Простая работа с файлами
    • Открытие нескольких файлов
    • Работа в режиме командной строки
    • Проверка потока и функция is_open()
    • Режимы файлов
    • Произвольный доступ к файлам
    • Внутреннее форматирование
    • Что дальше?
    • Резюме
    • Вопросы для повторения
    • Упражнения по программированию
  • Приложение A. Системы счисления
  • Приложение B. Ключевые слова языка C++
  • Приложение C. Таблица кодов ASCII
  • Приложение D. Приоритет операций
  • Приложение E. Другие операции
  • Приложение F. Шаблон класса STRING
  • Приложение G. Методы и функции библиотеки STL
  • Приложение H. Рекомендуемая литература
  • Приложение I. Преобразование программного кода в соответствии со стандартом ANSI/ISO C++
  • Приложение J. Ответы на вопросы для повторения
  • Предметный указатель
Похожие материалы:

Добавил: COBA (30.10.2009) | Категория: C++
Просмотров: 13176 | Загрузок: 2794 | Рейтинг: 5.0/2 |
Теги: Прата, учебник, программирование, C++
Комментарии (3)
0   Спам
1. Yaroslav   11.05.2011   04:04 [Материал]
Облокладинка з книжки C а зміст з С++
дибіли однако...
0   Спам
2. COBA   11.05.2011   09:21 [Материал]
Картинку обложки поменял, да, ошибочка была.

В книге всегда идёт повествование о C++, но в каждом разделе (особенно первых) попутно раскрывается информация об отличиях с простым С, если таковые есть.

0   Спам
3. lol   05.11.2012   23:34 [Материал]
комментарий удален

Имя *:
Email *:
Код *: