Программистам от программистов - Ivor Horton / Айвор Хортон - Beginning Visual C++ 2010 / Visual C++ 2010 Полный Курс

Программистам от программистов - Ivor Horton / Айвор Хортон - Beginning Visual C++ 2010 / Visual C++ 2010 Полный Курс
Название:
Программистам от программистов - Ivor Horton / Айвор Хортон - Beginning Visual C++ 2010 / Visual C++ 2010 Полный Курс
Размер:
66.4 MB
48
Скачать
Beginning Visual C++ 2010 / Visual C++ 2010 Полный Курс
Год: 2011
Автор: Ivor Horton / Айвор Хортон
Издательство: "Диалектика"
ISBN: 978-5-8459-1698-3
Серия: Программистам от программистов
Язык: Русский
Формат: PDF
Качество: eBook
Интерактивное оглавление: Да
Количество страниц: 1207
Описание: Следуя подробному и доступному руководству автора и выполняя упражнения, вы можете быстро стать квалифицированным программистом на языке C++. Полностью переделанная под выпуск 2010 года, эта книга знакомит вас с новейшей средой разработки Visual C++ и учит создавать с ее помощью реальные приложения. С этой книгой вы на верном пути к мастерству написания приложений в обеих версиях языка C++ и успехам программирования.
В данной книге вы найдете:
- Изучение основных тем программирования с использованием обеих технологий языка C++, предоставляемых средой разработки Visual C++ 2010
- Общие технологии поиска ошибок в программах на C++ и объяснение общих принципов отладки
- Обсуждение структуры и основных элементов, присутствующих в каждом приложении Windows®
- Демонстрация основ разработки приложений Windows с использованием классов Microsoft Foundation Classes
- Руководство по разработке и созданию приложений Windows как на языке C++, так и C++/CLI
- Множество практических примеров и упражнений, которые помогут получить навыки программирования
- Создание реального приложения по мере изучения языка C++
По существу, в этой книге рассматриваются две обширные темы: язык программирования C++ и программирование приложений Windows с использованием MFC или .NET Framework. Прежде, чем вы сможете разработать полнофункциональное приложение Windows, необходимо приобрести хороший уровень знаний языка C++, поэтому упражнения здесь на первом месте.
В первой части книги поэтапно изложены основные темы программирования на языке C++, используемые обеими разновидностями языковых технологий C++, поддерживаемых в Visual C++ 2010. Вы изучите синтаксис и использование базового языка C++ стандарта ISO/IEC, а также приобретете уверенность и опыт применения его на практике в контексте разнообразных практических примеров. Здесь есть также упражнения, которые вы можете использовать для проверки своих знаний. Модификацию C++/CLI базового языка C++ вы также изучите на практических примерах, иллюстрирующих работу каждого компонента языка.
Безусловно, в упражнениях демонстрируется также использование средств стандартной библиотеки C++, которые вам вероятно понадобятся. Знания средств стандартных библиотек будут добавляться поэтапно, по мере изучения языка C++. Кроме того, вы узнаете о мощных инструментальных средствах, предоставляемых стандартной библиотекой шаблонов STL в обеих формах: для базовой версии языка C++ и версии C++/CLI. Есть также глава посвященная библиотеке шаблонов для параллельных вычислений, обеспечивающей возможности использования мощи многоядерных PC для приложений с интенсивными вычислениями.
По мере приобретения навыков обращения с языком C++, мы перейдем к программированию для Windows. Вы узнаете, как разрабатывать простые приложения Windows, а также то, как используя библиотеку MFC создать полнофункциональное приложение на более, чем 2000 строк кода. Вы будете разрабатывать приложения на протяжении нескольких глав, используя обширный диапазон возможностей пользовательского интерфейса, предоставляемых библиотекой MFC. Для изучения программирования под Windows с использованием C++/CLI, вы разработаете приложение Windows Forms, возможности пользовательского интерфейса которого будут подобны средствам приложения на базовом языке C++.
Примеры страниц
Дополнительная информация:
Содержание книги:
Об авторе
О техническом редакторе
Благодарности
Введение
Программирование на языке С++
Разработка приложений Windows
Дополнительные возможности библиотек
Для кого предназначена книга
О чем эта книга
Структура книги
Что необходимо для работы с этой книгой
Соглашения, принятые в книге
Исходный код
Замеченные опечатки
От издательства
Глава 1. Программирование в Visual C++ 2010
Среда .NET Framework
Общеязыковая исполняющая среда (CLR)
Написание приложений C++
Изучение программирования для Windows
Изучение C++
Стандарты C++
Атрибуты
Консольные приложения
Концепции программирования для Windows
Что такое интегрированная среда разработки?
Редактор
Компилятор
Компоновщик
Библиотеки
Использование IDE
Возможности панели инструментов
Закрепляемые панели инструментов
Документация
Проекты и решения
Настройка параметров среды разработки Visual C++ 2010
Создание и выполнение приложений Windows
Создание приложения Windows Forms
Резюме
Глава 2. Данные, переменные и вычисления
Структура программы на C++
Функция main()
Операторы программы
Отступы
Блоки операторов
Консольные программы, создаваемые автоматически
Определение переменных
Именование переменных
Объявление переменных
Начальные значения переменных
Базовые типы данных
Целочисленные переменные
Символьные типы данных
Модификаторы целочисленных типов
Логический тип
Типы с плавающей запятой
Литералы
Определение синонимов для типов данных
Переменные с определенным набором значений
Базовые операции ввода-вывода
Ввод с клавиатуры
Вывод в командную строку
Форматирование вывода
Управляющие последовательности
Вычисления в C++
Оператор присвоения
Арифметические операции
Вычисление остатка
Изменение значения переменной
Операторы инкремента и декремента
Последовательность вычислений
Преобразование и приведение типов
Приведения типов в операторах присвоения
Явные приведения типов
Приведения в старом стиле
Ключевое слово auto
Выяснение типов
Битовые операторы
Битовое И
Битовое ИЛИ
Битовое исключающее ИЛИ
Битовое НЕ
Битовые операторы сдвига
Концепции l- и r-значений
Продолжительность хранения и область видимости
Автоматические переменные
Размещение объявлений переменных
Глобальные переменные
Статические переменные
Пространства имен
Объявление пространства имен
Множественные пространства имен
Программирование на C++/CLI
Специфика C++/CLI: базовые типы данных
Вывод C++ /CLI в командную строку
Специфика C++/CLI форматирование вывода
Клавиатурный ввод в C++ /СLI
Применение оператора safe_cast
Перечисления С++/СLI
Выяснение типов в C++/СLI
Резюме
Глава 3. Принятие решений и циклы
Сравнение значений
Оператор if
Вложенные операторы if
Вложенные операторы if-else
Логические операторы и выражения
Условный оператор
Оператор switch
Безусловный переход
Повторение блока операторов
Что такое цикл?
Вариации цикла for
Цикл while
Цикл do-while
Вложенные циклы
Программирование на C++/CLI
Цикл for each
Резюме
Глава 4. Массивы, строки и указатели
Обработка множества однотипных элементов данных
Массивы
Объявление массивов
Инициализация массивов
Символьные массивы и обработка строк
Многомерные массивы
Косвенный доступ к данным
Что такое указатель
Объявление указателей
Использование указателей
Инициализация указателей
Оператор sizeof
Константные указатели и указатели на константы
Указатели и массивы
Динамическое выделение памяти
Динамическая память, псевдоним “куча”
Операторы new и delete
Динамическое распределение памяти для массивов
Динамическое распределение многомерных массивов
Использование ссылок
Что такое ссылка
Объявление и инициализация ссылок
Определение и инициализация ссылок r-значений
Функции работы со строками из библиотеки “родного” C++
Выяснение длины строки, ограниченной нулевым символом
Объединение строк, ограниченных нулевым символом
Копирование строк, ограниченных нулевым символом
Сравнение строк, ограниченных нулевым символом
Поиск в строках, ограниченных нулевым символом
Программирование на C++/CLI
Отслеживаемые дескрипторы
Массивы среды CLR
Строки
Отслеживающие ссылки
Внутренние указатели
Резюме
Глава 5. Структурная организация программ
Что такое функции
Зачем нужны функции
Структура функции
Использование функций
Передача аргументов в функцию
Механизм передачи по значению
Указатели как аргументы функций
Передача массивов в функцию
Ссылки как аргументы функции
Использование модификатора const
Ссылочные параметры r-значения
Аргументы функции main()
Получение функцией переменного количества аргументов
Возвращение значений из функций
Возвращение указателя
Возвращение ссылки
Статические переменные в функциях
Рекурсивные вызовы функции
Использование рекурсии
Программирование на C++/CLI
Функции, получающие переменное количество аргументов
Аргументы функции main()
Резюме
Глава 6. Дополнительные сведения о структурах программ
Указатели на функции
Объявление указателей на функции
Указатель на функцию как аргумент
Массивы указателей на функции
Инициализация параметров функций
Исключения
Передача исключений
Перехват исключений
Обработка исключений в библиотеке MFC
Обработка ошибок выделения памяти
Перегрузка функций
Что такое перегрузка функций
Ссылочные типы и выбор версии перегруженной функции
Когда нужно перегружать функции
Шаблоны функций
Использование шаблона функции
Использование оператора decltype
Пример использования функций
Реализация калькулятора
Удаление пробелов из строки
Вычисление выражения
Получение значения элемента
Анализ числа
Собираем программу вместе
Расширение программы
Извлечение подстроки
Запуск модифицированной программы
Программирование на C++/CLI
Что такое общие функции
Программа калькулятора для CLR
Резюме
Глава 7. Определение собственных типов данных
Структуры в C++
Что такое структура
Определение структуры
Инициализация структуры
Доступ к членам структуры
Поддержка средства IntelliSense при работе со структурами
Структура RECT
Использование указателей со структурами
Типы данных, объекты, классы и экземпляры
Первый класс
Операции с классами
Терминология
Что такое класс
Определение класса
Определение объектов класса
Доступ к переменным-членам класса
Функции-члены класса
Расположение определения функции-члена
Встроенные функции
Конструкторы классов
Что такое конструктор
Стандартный конструктор
Присвоение параметрам значений по умолчанию в классе
Использование списка инициализации в конструкторе
Создание явного конструктора
Закрытые члены класса
Доступ к закрытым членам класса
Дружественные функции класса
Стандартный конструктор копирования
Указатель this
Константные объекты класса
Константная функция-член класса
Определения функций-членов вне класса
Массивы объектов класса
Статические члены класса
Статические переменные-члены класса
Статические функции-члены класса
Указатели и ссылки на объекты классов
Указатели на объекты класса
Ссылки на объекты класса
Программирование на C++/CLI
Определение типов классов значений
Определение ссылочных классов
Определение конструктора копирования для ссылочного класса
Свойства классов
Поля initonly
Статические конструкторы
Резюме
Глава 8. Дополнительные сведения о классах
Деструкторы классов
Что такое деструктор
Стандартный деструктор
Деструкторы и динамическое распределение памяти
Реализация конструктора копирования
Совместное использование памяти переменными
Определение объединений
Объединения в классах и структурах
Перегрузка операторов
Реализация перегруженного оператора
Реализация полной поддержки оператора
Перегрузка оператора присвоения
Перегрузка оператора сложения
Перегрузка операторов инкремента и декремента
Перегрузка оператора вызова функции
Проблемы копирования объектов
Как избежать ненужных операций копирования
Применение ссылочных параметров r-значений
Именованные объекты — l-значения
Шаблоны классов
Определение шаблона класса
Создание объектов из шаблона класса
Шаблоны классов с несколькими параметрами
Шаблоны для объектов функций
Использование классов
Понятие интерфейса класса
Определение проблемы
Реализация класса СВох
Использование класса СВох
Организация кода программы
Именование программных файлов
Классы для работы со строками из “родной” библиотеки С++
Создание строковых объектов
Конкатенация строк
Обращение к строкам и их модификация
Сравнение строк
Поиск в строках
Программирование на C++/CLI
Перегрузка операторов в классах значений
Перегрузка операторов инкремента и декремента
Перегрузка операторов в ссылочных классах
Реализация оператора присвоения для ссылочных типов
Резюме
Глава 9. Наследование классов и виртуальные функции
Основы объектно-ориентированного программирования
Наследование в классах
Что такое базовый класс
Наследование классов от базового класса
Управление доступом при наследовании
Работа конструкт ора в производном классе
Объявление членов класса как protected
Уровень доступа унаследованных членов класса
Конструктор копирования в производном классе
Члены класса как друзья
Дружественные классы
Ограничения отношения дружественности классов
Виртуальные функции
Что такое виртуальная функция
Использование указателей на объекты классов
Использование ссылок с виртуальными функциями
Чистые виртуальные функции
Абстрактные классы
Непрямые базовые классы
Виртуальные деструкторы
Приведение между типами классов
Вложенные классы
Программирование на C++/ CLI
Упаковка и распаковка
Наследование классов в C++/CLI
Интерфейсные классы
Определение интерфейсных классов
Классы и сборки
Функции, указанные как new
Делегаты и события
Деструкторы и финализаторы в ссылочных классах
Общие классы
Резюме
Глава 10. Стандартная библиотека шаблонов
Что такое стандартная библиотека шаблонов
Контейнеры
Адаптеры контейнеров
Итераторы
Алгоритмы
Объекты функций в библиотеке STL
Адаптеры функций
Диапазон контейнеров STL
Последовательные контейнеры
Создание контейнеров vector
Емкость и размер контейнера vector
Обращение к элементам в векторе
Вставка и удаление элементов в векторе
Сохранение в векторе объектов класса
Сортировка элементов вектора
Хранение указателей в векторе
Контейнеры — двунаправленные очереди
Использование контейнеров List
Использование других последовательных контейнеров
Ассоциативные контейнеры
Использование карт
Использование контейнера multimap
Дополнительные сведения об итераторах
Использование итераторов входного потока
Использование вставляющих итераторов
Использование итераторов выходного потока
Дополнительные сведения об объектах функций
Дополнительные сведения об алгоритмах
Функция fill()
Функция replace()
Функция find()
Функция transform()
Лямбда-выражения
Директива фиксации
Фиксация конкретных переменных
Шаблоны и лямбда-выражения
Оболочка лямбда-выражения
Библиотека STL для программ C++/СLI
Контейнеры STL /CLR
Использование последовательных контейнеров
Использование ассоциативных контейнеров
Лямбда-выражения в C++/CLI
Резюме
Глава 11. Приемы отладки
Понятие отладки
Программные ошибки
Распространенные ошибки
Базовые операции отладки
Установка точек останова
Установка точек трассировки
Запуск отладки
Изменение значения переменной
Добавление отладочного кода
Использование утверждений
Добавление собственного отладочного кода
Отладка программы
Стек вызовов
Переход к ошибке
Проверка расширенного класса
Поиск следующей ошибки
Отладка динамической памяти
Функции проверки динамической памяти
Управление отладочными операциями динамической памяти
Отладочный вывод динамической памяти
Отладка программ C++/CLI
Использование классов Debug и Trace
Получение вывода трассировки в приложениях Windows Forms
Резюме
Глава 12. Концепции программирования для Windows
Основы программирования для Windows
Элементы окна
Программы Windows и операционная система
Программирование, управляемое событиями
Сообщения Windows
Интерфейс API Windows
Типы данных Windows
Нотация программ Windows
Структура программы Windows
Функция WinMain()
Функции обработки сообщений
Простая программа Windows
Организация программ Windows
Библиотека Microsoft Foundation Classes
Нотация библиотеки MFC
Структуризация программы MFC
Использование Windows Forms
Резюме
Глава 13. Программирование для нескольких ядер
Основы параллельных вычислений
Введение в библиотеку шаблонов для параллельных вычислений
Алгоритмы параллельной обработки
Использование алгоритма parallel_for
Использование алгоритма parallel_for_each
Использование алгоритма parallel_invoke
Реальная проблема параллельной обработки
Критические разделы
Использование объекта critical_section
Блокировка и разблокировка разделов кода
Шаблон класса combinable
Задачи и группы задач
Резюме
Глава 14. Программирование для Windows с использованием библиотеки MFC
Концепция "документ-представление" в библиотеке MFC
Что такое документ
Документные интерфейсы
Что такое представление
Связь документа с его представлениями
Ваше приложение и библиотека MFC
Создание приложений MFC
Создание приложения SDI
Вывод мастера MFC Application Wizard
Создание приложения MDI
Резюме
Глава 15. Работа с меню и панелями инструментов
Взаимодействие с Windows
Что такое карты сообщений
Категории сообщений
Обработка сообщений в программах
Расширение программы Sketcher
Элементы меню
Создание и редактирование ресурсов меню
Добавление обработчиков сообщений меню
Выбор класса для обработки сообщений меню
Создание функций сообщений меню
Создание функций сообщений меню
Добавление обработчиков сообщений для обновления пользовательского интерфейса
Добавление кнопок панели инструментов
Редактирование свойств кнопки панели инструментов
Испытание кнопок панели инструментов
Добавление всплывающих подсказок
Меню и панели инструментов в программах C++/СLI
Технология Windows Forms
Приложения Windows Forms
Добавление меню в версию CLR программы Sketcher
Добавление обработчиков событий для пунктов меню
Реализация обработчиков событий
Установка отметок напротив соответствующих пунктов меню
Добавление панели инструментов
Резюме
Глава 16. Рисование в окне
Основы рисования в окне
Клиентская область окна
Интерфейс графических устройств Windows
Механизм рисования в Visual C++
Класс представления в вашем приложении
Класс CDC
Практика рисования графики
Программирование для мыши
Сообщения от мыши
Обработчики сообщений мыши
Рисование с помощью мыши
Испытание программы Sketcher
Запуск примера
Захват сообщений мыши
Рисование с помощью среды CLR
Рисование в форме
Добавление обработчиков событий мыши
Определение классов элементов C++/CLI
Реализация обработчика событий МоuseMove
Реализация обработчика событий MouseUp
Реализация обработчика события Paint для формы
Резюме
Глава 17. Создание документа и усовершенствование представления
Создание документа приложения Sketcher
Использование контейнера list<Т> для приложения Sketch
Усовершенствование представления
Обновление множественных представлений
Прокрутка представлений
Использование режима отображения MM_LOENGLISН
Удаление и перемещение фигур
Реализация контекстного меню
Связывание меню с классом
Проверка контекстных меню
Подсветка элементов
Обработка сообщений меню
Работа с маскированными элементами
Расширение версии CLR приложения CLRSketcher
Преобразования системы координат
Определение класса Sketch
Рисование эскиза в обработчике событий Paint
Реализация механизма подсветки элементов
Создание контекстных меню
Резюме
Глава 18. Работа с диалоговыми окнами и элементами управления
Понятие диалоговых окон
Что такое элементы управления
Создание ресурса диалогового окна
Добавление элементов управления в диалоговое окно
Программирование для диалогового окна
Добавление класса диалогового окна
Модальные и немодальные диалоговые окна
Отображение диалогового окна
Поддержка элементов управления диалоговых окон
Инициализация элементов управления
Обработка сообщений переключателей
Завершение операций диалогового окна
Добавление ширины пера к документу
Добавление ширины пера к элементам
Создание элементов в представлении
Проверка диалогового окна
Использование кнопки счетчика
Добавление пункта меню и кнопки панели инструментов для функции масштабирования
Создание кнопки счетчика
Создание класса диалогового окна масштабирования
Отображение кнопки счетчика
Использование показателя масштаба
Масштабируемые режимы отображения
Установки размера документа
Установка режима отображения
Реализация прокрутки с масштабированием
Использование класса CTaskDialog
Отображение диалогового окна задач
Создание объектов CTaskDialog
Работа с панелями состояния
Добавление панели состояния в обрамляющее окно
Использование окна списка
Удаление диалогового окна масштаба
Создание элемента управления списком
Использование элемента управления — поле редактирования
Создание ресурса поля редактирования
Создание класса диалогового окна
Добавление пункта меню Text
Определение текстового элемента
Реализация класса CText
Создание текстового элемента
Диалоговые окна и элементы управления в версии программы Sketcher
для среды CLR
Добавление диалогового окна
Создание текстовых элементов
Резюме
Глава 19. Сохранение и печать документов
Что такое cepиализация
Сериализация документа
Сериализация в определении класса документа
Сериализация в реализации класса документа
Возможности классов на базе класса CObject
Процесс cepиализации
Как реализовать сериализацию для класса
Применение сериализации
Запись изменений в документе
Сериализация документа
Сериализация классов элементов
Испытание сериализации
Печать документа
Процесс печати
Реализация многостраничной печати
Получение полного размера документа
Сохранение данных печати
Подготовка к печати
Очистка после печати
Подготовка контекста устройства
Печать документа
Получение печатного вывода документа
Сериализация и печать в версии CLR программы Sketcher
Двоичная сериализация
Cepиализация класса Sketcher
Печать эскиза
Резюме
Глава 20. Написание собственных библиотек DLL
Что такое библиотека DLL
Как работают библиотеки DLL
Содержимое библиотеки DLL
Bapиации библиотек DLL
Что помещать в библиотеку DLL
Написание библиотек DLL
Написание и использование библиотек DLL расширения
Резюме
Предметный указатель
Особенности релиза:
1. Хорошее издание, с закладочной навигацией в боковой панели;
2. Книга переработана в электронную, исходный размер DjVu - 52,9 МБ, реставрация обложек, выравнивание размеров страниц;
3. Текст хорошо распознан, возможно копирование в буфер (см.скрин2) и поиск по всему тексту (скрин3);
4. Максимальное увеличение страницы, сохраняет чистоту текста, ровность букв.
* возврат через закладку - Содержание;
* Скриншоты сняты с разрешением - 46,9%;
* К сожалению, отсутствует страница 735.
Что было: