занятие 27. Применение потоков для ввода и вывода
|
587
|
Концепция потоков
|
|
588
|
Важнейшие классы и объекты потоков C++
|
|
588
|
Использование объекта s t d : : cout для вывода отформатированных данных на консоль
|
590
|
Изменение формата представления чисел
|
|
590
|
Выравнивание текста и установка ширины поля с использованием
|
|
объекта s td : : co u t
|
|
592
|
Использование объекта s t d : : c in для ввода
|
|
593
|
Использование объекта s t d : : c in для ввода старых простых типов данных
|
593
|
Использование метода s td : :c in : :g e t( )
|
для ввода в символьный буфер стиля С
|
594
|
Использование объекта s t d : : c in для ввода в переменную типа s t d : : s tr i n g
|
595
|
Использование объекта s t d : : f stream для работы с файлом
|
597
|
Открытие и закрытие файла с использованием методов open () и c lo s e ()
|
597
|
Создание и запись текстового файла с использованием метода open ()
|
|
и оператора «
|
|
598
|
Чтение текстового файла с использованием метода open () и оператора »
|
599
|
Запись и чтение из двоичного файла
|
|
600
|
Использование объекта s t d : : s tr in g s tre a m
|
для преобразования строк
|
602
|
Резюме
|
|
604
|
Вопросы и ответы
|
|
604
|
Коллоквиум
|
|
604
|
Контрольные вопросы
|
|
605
|
Упражнения
|
|
605
|
занятие 28. Обработка исключений
|
|
607
|
Что такое исключение
|
|
608
|
Что вызывает исключения
|
|
608
|
Реализация устойчивости к исключениям при помощи блоков t r y и c a tc h
|
608
|
Использование блока c a tc h ( . . . ) для обработки всех исключений
|
609
|
Обработка исключения конкретного типа
|
|
610
|
Передача исключения конкретного типа с использованием оператора throw
|
612
|
Как действует обработка исключений
|
|
613
|
Класс s t d : : e x c e p tio n
|
|
615
|
Ваш собственный класс исключения, производный от класса s t d : : e x c e p tio n
|
616
|
18
|
Содержание
|
|
|
Резюме
|
618
|
|
Вопросы и ответы
|
618
|
|
Коллоквиум
|
619
|
|
Контрольные вопросы
|
619
|
|
Упражнения
|
619
|
занятие 29. Что дальше
|
621
|
|
Чем отличаются современные процессоры
|
622
|
|
Как лучше использовать несколько ядер
|
623
|
|
Что такое поток
|
623
|
|
Зачем создавать многопоточные приложения
|
624
|
|
Как потоки осуществляют транзакцию данных
|
625
|
|
Использование мьютексов и семафоров для синхронизации потоков
|
626
|
|
Проблемы, вызванные многопоточностью
|
626
|
|
Как писать отличный код C++
|
627
|
|
Изучение C++ на этом не заканчивается
|
628
|
|
Сетевая документация
|
628
|
|
Сетевые сообщества и помощь
|
629
|
|
Резюме
|
629
|
|
Вопросы и ответы
|
629
|
|
Коллоквиум
|
630
|
|
Контрольные вопросы
|
630
|
часть VI. Приложения
|
631
|
приложение А. Двоичные и шестнадцатеричные числа
|
633
|
|
Десятичная система счисления
|
634
|
|
Двоичная система счисления
|
634
|
|
Почему компьютеры используют двоичные числа
|
635
|
|
Что такое биты и байты
|
635
|
|
Сколько байт в килобайте
|
635
|
|
Шестнадцатеричная система счисления
|
635
|
|
Зачем нужна шестнадцатеричная система
|
636
|
|
Преобразование в различные системы счисления
|
636
|
|
Обобщенный процесс преобразования
|
636
|
|
Преобразование десятичного числа в двоичное
|
637
|
|
Преобразование десятичного числа в шестнадцатеричное
|
637
|
приложение Б. Ключевые слова языка C++
|
639
|
приложение в. Приоритет операторов
|
641
|
приложение г. Ответы
|
643
|
ПРИЛОЖЕНИЕ Д. Коды ASCII
|
681
|
|
Таблица ASCII отображаемых символов
|
682
|
Предметный указатель
|
685
|
Введение
2011 год был особенным для языка C++. Ратификация нового стандарта С++11 позво ляет писать лучший код с использованием новых ключевых слов и конструкций, улучша ющих эффективность программирования. Эта книга поможет изучить язык С++11 малень кими шагами. Она специально разделена на отдельные занятия, излагающие основные принципы этого языка объектно-ориентированного программирования с практической точки зрения. Вы сможете овладеть языком С++11, занимаясь всего по одному часу.
Приведенные здесь фрагменты кода были проверены с использованием последних версий доступных компиляторов, а именно компилятора Microsoft Visual C++ 2010 для C++ и компилятора C++ GNU версии 4.6, которые поддерживают новые средства языка С++11.
Для кого написана эта книга
Книга начинается с самых основ языка C++. Необходимо лишь желание изучить этот язык и сообразительность, чтобы понять, как он работает. Наличие навыков программи рования на языке C++ может быть преимуществом, но не является обязательным. К этой же книге имеет смысл обратиться, если вы уже знаете язык C++, но хотите изучить добав ления, которые были внесены в язык С++11. Если вы профессиональный программист, то третья часть книги поможет узнать, как лучше на практике создавать приложения C++11.
Структура книги
зависимости от текущего уровня квалификации вы можете начать изучение с любого раздела. Книга состоит из пяти частей.
Часть I, “Основы”, позволяет приступить к написанию простых приложений C++. Од новременно она знакомит с ключевыми словами, которые вы чаще всего видите в коде C++, а также с переменными, но не затрагивает безопасность типов.
Часть II, “Фундаментальные принципы объектно-ориентированного программирова ния на C++”, знакомит с концепцией классов. Вы узнаете, как язык C++ поддержи вает важнейшие принципы объектно-ориентированного программирования, включая инкапсуляцию, абстракцию, наследование и полиморфизм. Занятие 9, “Классы и объ екты”, представляет новые концепции С++11, включая конструктор перемещения, а за нятие 12, “Типы операторов и их перегрузка”, — оператор присваивания при пере мещении. Эти эффективные средства помогают сократить ненужные и нежелательные этапы копирования, увеличивая производительность приложения. Занятие 14, “Макро сы и шаблоны”, является краеугольным камнем для написания мощного обобщенного кода на C++.
20 Введение
Часть III, “Знакомство со стандартной библиотекой шаблонов (STL)”, поможет писать эффективный код C++, использующий класс STL string и контейнеры. Вы узнаете, как класс std::string упрощает операции конкатенации строк и позволяет избежать использования символьных строк в стиле С. Вы сможете использовать динамические массивы и связанные списки библиотеки STL, а не создавать их самостоятельно.
Часть IV, “Подробней о библиотеке STL”, посвящена алгоритмам. Вы узнаете, как, ис пользуя итераторы, применить сортировку в таких контейнерах, как вектор. Здесь так же изложено, как ключевое слово С++11 auto позволяет существенно сократить длину объявлений итератора. Занятие 22, “Лямбда-выражения языка C + + И ”, представляет мощное новое средство, позволяющее сущ ественно сократить размера кода при ис пользовании алгоритмов библиотеки STL.
Часть V, “Передовые концепции языка C++”, объясняет такие средства языка, как ин теллектуальные указатели и обработка исключений, которые не являются необходимо стью в приложении C++, но вносят существенный вклад в увеличение его стабильно сти и качества. Эта часть завершается полезными советами по написанию приложений С++11.
Do'stlaringiz bilan baham: |