Отличная книга с подробным описанием С++ и программирования для Windows в среде Visual C++ версии 2010г (создания приложений для Windows и графических интерфейсов). Рассматривается разработка программ с Win API, с библиотекой MFC и в среде Windows Forms. Рассмотрены как классический С++, так и С++/CLI (Майкрософтовские расширения С++). Есть главка по программированию для нескольких ядер. Огромное количество примеров, в архиве исходный код всех программ из книги.
Название: Visual C++ 2010: полный курс (с кодами) Автор: Хортон Айвор Издательство: Вильямс Год: 2011 Страниц: 1207 Формат: DJVU Размер: 234 МБ ISBN: 978-5-8459-1698-3 Качество: Хорошее
Содержание:
Об авторе О техническом редакторе Благодарности Введение Программирование на языке 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 - форматирование вывода Клавиатурный ввод в С++/СLI Применение оператора safe_cast Перечисления C++/CLI Выяснение типов в C++/CLI Резюме Глава 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 Ссылочные параметры г-значения Аргументы функции main () Получение функцией переменного количества аргументов Возвращение значений из функций Возвращение указателя Возвращение ссылки Статические переменные в функциях Рекурсивные вызовы функции Использование рекурсии Программирование на C++/CLI Функции, получающие переменное количество аргументов Аргументы функции main () Резюме Глава 6. Дополнительные сведения о структурах программ Указатели на функции Объявление указателей на функции Указатель на функцию как аргумент Массивы указателей на функции Инициализация параметров функций Исключения Передача исключений Перехват исключений Обработка исключений в библиотеке MFC Обработка ошибок выделения памяти Перегрузка функций Что такое перегрузка функций Ссылочные типы и выбор версии перегруженной функции Когда нужно перегружать функции Шаблоны функций Использование шаблона функции Использование оператора decltype Пример использования функций Реализация калькулятора Удаление пробелов из строки Вычисление выражения Получение значения элемента Анализ числа Собираем программу вместе Расширение программы Извлечение подстроки Запуск модифицированной программы Программирование на C++/CLI Что такое общие функции Программа калькулятора для CLR Резюме Глава 7. Определение собственных типов данных Структуры в C++ Что такое структура Определение структуры Инициализация структуры Доступ к членам структуры Поддержка средства IntelliSense при работе со структурами Структура RECT Использование указателей со структурами Типы данных, объекты, классы и экземпляры Первый класс Операции с классами Терминология Что такое класс Определение класса Определение объектов класса Доступ к переменным-членам класса Функции-члены класса Расположение определения функции-члена Встроенные функции Конструкторы классов Что такое конструктор Стандартный конструктор Присвоение параметрам значений по умолчанию в классе Использование списка инициализации в конструкторе Создание явного конструктора Закрытые члены класса Доступ к закрытым членам класса Дружественные функции класса Стандартный конструктор копирования Указатель this Константные объекты класса Константная функция-член класса Определения функций-членов вне класса Массивы объектов класса Статические члены класса Статические переменные-члены класса Статические функции-члены класса Указатели и ссылки на объекты классов Указатели на объекты класса Ссылки на объекты класса Программирование на C++/CLI Определение типов классов значений Определение ссылочных классов Определение конструктора копирования для ссылочного класса Свойства классов Поля initonly Статические конструкторы Резюме Глава 8. Дополнительные сведения о классах Деструкторы классов Что такое деструктор Стандартный деструктор Деструкторы и динамическое распределение памяти Реализация конструктора копирования Совместное использование памяти переменными Определение объединений Объединения в классах и структурах Перегрузка операторов Реализация перегруженного оператора Реализация полной поддержки оператора Перегрузка оператора присвоения Перегрузка оператора сложения Перегрузка операторов инкремента и декремента Перегрузка оператора вызова функции Проблемы копирования объектов Как избежать ненужных операций копирования Применение ссылочных параметров г-значений Именованные объекты - l-значения Шаблоны классов Определение шаблона класса Создание объектов из шаблона класса Шаблоны классов с несколькими параметрами Шаблоны для объектов функций Использование классов Понятие интерфейса класса Определение проблемы Реализация класса CBox Использование класса CBox Организация кода программы Именование программных файлов Классы для работы со строками из "родной" библиотеки C++ Создание строковых объектов Конкатенация строк Обращение к строкам и их модификация Сравнение строк Поиск в строках Программирование на C++/CLI Перегрузка операторов в классах значений Перегрузка операторов инкремента и декремента Перегрузка операторов в ссылочных классах Реализация оператора присвоения для ссылочных типов Резюме Глава 9. Наследование классов и виртуальные функции Основы объектно-ориентированного программирования Наследование в классах Что такое базовый класс Наследование классов от базового класса Управление доступом при наследовании Работа конструктора в производном классе Объявление членов класса как protected Уровень доступа унаследованных членов класса Конструктор копирования в производном классе Члены класса как друзья Дружественные классы Ограничения отношения дружественности классов Виртуальные функции Что такое виртуальная функция Использование указателей на объекты классов Использование ссылок с виртуальными функциями Чистые виртуальные функции Абстрактные классы Непрямые базовые классы Виртуальные деструкторы Приведение между типами классов Вложенные классы Программирование на C++/CLI Упаковка и распаковка Наследование классов в C++/CLI Интерфейсные классы Определение интерфейсных классов Классы и сборки Функции, указанные как new Делегаты и события Деструкторы и финализаторы в ссылочных классах Общие классы Резюме Глава 10. Стандартная библиотека шаблонов Что такое стандартная библиотека шаблонов Контейнеры Адаптеры контейнеров Итераторы Алгоритмы Объекты функций в библиотеке STL Адаптеры функций Диапазон контейнеров STL Последовательные контейнеры Создание контейнеров vector Емкость и размер контейнера vector Обращение к элементам в векторе Вставка и удаление элементов в векторе Сохранение в векторе объектов класса Сортировка элементов вектора Хранение указателей в векторе Контейнеры - двунаправленные очереди Использование контейнеров List Использование других последовательных контейнеров Ассоциативные контейнеры Использование карт Использование контейнера multimap Дополнительные сведения об итераторах Использование итераторов входного потока Использование вставляющих итераторов Использование итераторов выходного потока Дополнительные сведения об объектах функций Дополнительные сведения об алгоритмах Функция fill () Функция replace () Функция find () Функция transform () Лямбда-выражения Директива фиксации Фиксация конкретных переменных Шаблоны и лямбда-выражения Оболочка лямбда-выражения Библиотека STL для программ C++/CLI Контейнеры 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 Нотация библиотеки MF'C Структуризация программы 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++/CLI Технология Windows Forms Приложения Windows Forms Добавление меню в версию CLR программы Sketcher Добавление обработчиков событий для пунктов меню Реализация обработчиков событий Установка отметок напротив соответствующих пунктов меню Добавление панели инструментов Резюме Глава 16. Рисование в окне Основы рисования в окне Клиентская область окна Интерфейс графических устройств Windows Механизм рисования в Visual C++ Класс представления в вашем приложении Класс CDC Практика рисования графики Программирование для мыши Сообщения от мыши Обработчики сообщений мыши Рисование с помощью мыши Испытание программы Sketcher Запуск примера Захват сообщений мыши Рисование с помощью среды CLR Рисование в форме Добавление обработчиков событий мыши Определение классов элементов C++/CLI Реализация обработчика событий MouseMove Реализация обработчика событий MouseUp Реализация обработчика события Paint для формы Резюме Глава 17. Создание документа и усовершенствование представления Создание документа приложения Sketcher Использование контейнера list для приложения Sketch Усовершенствование представления Обновление множественных представлений Прокрутка представлений Использование режима отображения MM_LOENGLISH Удаление и перемещение фигур Реализация контекстного меню Связывание меню с классом Проверка контекстных меню Подсветка элементов Обработка сообщений меню Работа с маскированными элементами Расширение версии CLR приложения CLRSketcher Преобразования системы координат Определение класса Sketch Рисование эскиза в обработчике событий Paint Реализация механизма подсветки элементов Создание контекстных меню Резюме Глава 18. Работа с диалоговыми окнами и элементами управления Понятие диалоговых окон Что такое элементы управления Создание ресурса диалогового окна Добавление элементов управления в диалоговое окно Программирование для диалогового окна Добавление класса диалогового окна Модальные и немодальные диалоговые окна Отображение диалогового окна Поддержка элементов управления диалоговых окон Инициализация элементов управления Обработка сообщений переключателей Завершение операций диалогового окна Добавление ширины пера к документу Добавление ширины пера к элементам Создание элементов в представлении Проверка диалогового окна Использование кнопки счетчика Добавление пункта меню и кнопки панели инструментов для функции масштабирования Создание кнопки счетчика Создание класса диалогового окна масштабирования Отображение кнопки счетчика Использование показателя масштаба Масштабируемые режимы отображения Установка размера документа Установка режима отображения Реализация прокрутки с масштабированием Использование класса CTaskDialog Отображение диалогового окна задач Создание объектов CTaskDialog Работа с панелями состояния Добавление панели состояния в обрамляющее окно Использование окна списка Удаление диалогового окна масштаба Создание элемента управления списком Использование элемента управления - поле редактирования Создание ресурса поля редактирования Создание класса диалогового окна Добавление пункта меню Text Определение текстового элемента Реализация класса CText Создание текстового элемента Диалоговые окна и элементы управления в версии программы Sketcher для среды CLR Добавление диалогового окна Создание текстовых элементов Резюме Глава 19. Сохранение и печать документов Что такое сериализация Сериализация документа Сериализация в определении класса документа Сериализация в реализации класса документа Возможности классов на базе класса CObject Процесс сериализации Как реализовать сериализацию,для класса Применение сериализации Запись изменений в документе Сериализация документа Сериализация классов элементов Испытание сериализации Печать документа Процесс печати Реализация многостраничной печати Получение полного размера документа Сохранение данных печати Подготовка к печати Очистка после печати Подготовка контекста устройства Получение печатного вывода документа Сериализация и печать в версии CLR программы Sketcher Двоичная сериализация Сериализация класса Sketch Печать эскиза Резюме Глава 20. Написание собственных библиотек DLL Что такое библиотека DLL Как работают библиотеки DLL Содержимое библиотеки DLL Вариации библиотек DLL Что помещать в библиотеку DLL Написание библиотек DLI Написание и использование библиотек DLL расширения Резюме Предметный указатель