Освой самостоятельно C++ по одному часу в день. 8 изд

Освой самостоятельно C++ по одному часу в день. 8 изд

Освой самостоятельно C++ по одному часу в день. 8 изд
Автор: Рао Сиддхартха
Переводчик: И. В. Красикова, С. Н. Тригуб
Дата выхода: 2017
Издательство: Диалектика
Количество страниц: 754
Размер файла: 12.1 MB
Тип файла: PDF
Добавил: codelibs
 Проверить на вирусы

Содержание....8

Благодарности....24

Об авторе....24

Поддержка читателя....25

Ждем ваших отзывов!....25

ВВЕДЕНИЕ....26

Для кого написана эта книга....26

Структура книги....26

Соглашения, принятые в книге....27

Примеры кода....28

ЧАСТЬ I. Основы C++....30

ЗАНЯТИЕ 1. Первые шаги....32

Краткий экскурс в историю языка C++....33

Связь с языком С....33

Преимущества языка C++....33

Развитие стандарта C++....34

Кто использует программы, написанные на C++....34

Создание приложения C++....34

Этапы создания выполнимого файла....35

Анализ и устранение ошибок....35

Интегрированные среды разработки....35

Создание первого приложения на C++....36

Построение и запуск вашего первого приложения C++....37

Понятие ошибок компиляции....39

Что нового в C++....39

Резюме....40

Вопросы и ответы....40

Коллоквиум....41

Контрольные вопросы....41

Упражнения....41

ЗАНЯТИЕ 2. Структура программы на C++....42

Части программы Hello World....43

Директива препроцессора #include....43

Тело программы — функция main ()....44

Возврат значения....45

Концепция пространств имен....45

Комментарии в коде C++....47

Функции в C++....48

Ввод-вывод с использованием потоков std:: cin и std:: cout....51

Резюме....53

Вопросы и ответы....53

Коллоквиум....53

Контрольные вопросы....54

Упражнения....54

ЗАНЯТИЕ 3. Использование переменных и констант....56

Что такое переменная....57

Коротко о памяти и адресации....57

Объявление переменных для получения доступа и использования памяти....57

Объявление и инициализация нескольких переменных одного типа....59

Понятие области видимости переменной....60

Глобальные переменные....62

Соглашения об именовании....63

Распространенные типы переменных, поддерживаемые компилятором C++....64

Использование типа bool для хранения логических значений....65

Использование типа char для хранения символьных значений....65

Концепция знаковых и беззнаковых целых чисел....66

Знаковые целочисленные типы short, int, long и long long....67

Беззнаковые целочисленные типы unsigned short, unsigned int, unsigned long и unsigned long long....67

Избегайте переполнения, выбирая подходящие типы....68

Типы с плавающей точкой float и double....70

Определение размера переменной с использованием оператора sizeof....70

Запрет сужающего преобразования при использовании инициализации списком....72

Автоматический вывод типа с использованием auto....73

Использование ключевого слова typedef для замены типа....74

Что такое константа....75

Литеральные константы....75

Объявление переменных как констант с использованием ключевого слова const....76

Объявление констант с использованием ключевого слова constexpr....77

Перечисления....79

Определение констант с использованием директивы #def ine....81

Ключевые слова, недопустимые для использования в качестве имен переменных и констант....81

Резюме....82

Вопросы и ответы....83

Коллоквиум....85

Контрольные вопросы....85

Упражнения....85

ЗАНЯТИЕ 4. Массивы и строки....86

Что такое массив....87

Необходимость в массивах....87

Объявление и инициализация статических массивов....88

Как данные хранятся в массиве....89

Доступ к данным, хранимым в массиве....90

Изменение данных в массиве....91

Многомерные массивы....94

Объявление и инициализация многомерных массивов....94

Доступ к элементам многомерного массива....95

Динамические массивы....96

Строки символов в стиле С....98

Строки C++: использование std:: string....101

Резюме....102

Вопросы и ответы....103

Коллоквиум....104

Контрольные вопросы....104

Упражнения....104

ЗАНЯТИЕ 5. Выражения, инструкции и операторы....106

Выражения....107

Составные инструкции, или блоки....108

Использование операторов....108

Оператор присваивания (=)....108

Понятие 1- и г-значений....108

Операторы сложения (+), вычитания (-), умножения (*), деления (/) и деления по модулю (%)....109

Операторы инкремента (++) и декремента (—)....110

Что значит “постфиксный” и “префиксный”....110

Операторы равенства (==) и неравенства (! =)....112

Операторы сравнения....112

Логические операции НЕ, И, ИЛИ и ИСКЛЮЧАЮЩЕЕ ИЛИ....115

Использование логических операторов C++ !, && и | |....116

Побитовые операторы | и А....120

Побитовые операторы сдвига вправо (») и влево («)....122

Составные операторы присваивания....123

Использование оператора sizeof для определения объема памяти, занимаемого переменной....125

Приоритет операторов....126

Резюме....128

Вопросы и ответы....128

Коллоквиум....129

Контрольные вопросы....129

Упражнения....129

ЗАНЯТИЕ 6. Управление потоком выполнения программы....130

Условное программирование с использованием конструкции if... else....132

Условное выполнение нескольких инструкций....134

Вложенные инструкции if....135

Условная обработка с использованием конструкции switch-case....139

Тернарный условный оператор (?:)....142

Выполнение кода в циклах....143

Рудиментарный цикл с использованием инструкции goto....144

Цикл while....146

Цикл do...while....147

Цикл for....149

Цикл for для диапазона....152

Изменение поведения цикла с использованием операторов continue и break....154

Бесконечные циклы, которые никогда не заканчиваются....155

Управление бесконечными циклами....155

Программирование вложенных циклов....158

Использование вложенных циклов для перебора многомерного массива....159

Использование вложенных циклов для вычисления чисел Фибоначчи....161

Резюме....162

Вопросы и ответы....163

Коллоквиум....163

Контрольные вопросы....164

Упражнения....164

ЗАНЯТИЕ 7. Организация кода с помощью функций....166

Потребность в функциях....167

Что такое прототип функции....168

Что такое определение функции....169

Что такое вызов функции и аргументы....169

Создание функций с несколькими параметрами....170

Создание функций без параметров и возвращаемых значений....171

Параметры функций со значениями по умолчанию....172

Рекурсия — функция, вызывающая сама себя....174

Функции с несколькими операторами return....176

Использование функций для работы с данными различных видов....177

Перегрузка функций....178

Передача в функцию массива значений....179

Передача аргументов по ссылке....181

Как процессор обрабатывает вызовы функций....183

Встраиваемые функции....184

Автоматический вывод возвращаемого типа....185

Лямбда-функции....187

Резюме....188

Вопросы и ответы....189

Коллоквиум....189

Контрольные вопросы....189

Упражнения....190

ЗАНЯТИЕ 8. Указатели и ссылки....192

Что такое указатель....193

Объявление указателя....193

Определение адреса переменной с использованием оператора получения адреса &....194

Использование указателей для хранения адресов....195

Доступ к данным с использованием оператора разыменования *....198

Значение sizeof () для указателя....200

Динамическое распределение памяти....202

Использование new и delete для выделения и освобождения памяти....202

Указатели и операции инкремента и декремента....205

Использование ключевого слова const с указателями....208

Передача указателей в функции....209

Сходство между массивами и указателями....210

Наиболее распространенные ошибки при использовании указателей....213

Утечки памяти....213

Когда указатели указывают на недопустимые области памяти....214

Висячие (беспризорные, дикие) указатели....215

Проверка успешности запроса с использованием оператора new....216

Полезные советы по применению указателей....219

Что такое ссылка....219

Зачем нужны ссылки....221

Использование ключевого слова const со ссылками....222

Передача аргументов в функции по ссылке....222

Резюме....224

Вопросы и ответы....224

Коллоквиум....226

Контрольные вопросы....226

Упражнения....226

ЧАСТЬ II. Объектно-ориентированное программирование на C++....228

ЗАНЯТИЕ 9. Классы и объекты....230

Концепция классов и объектов....231

Объявление класса....231

Объект как экземпляр класса....232

Доступ к членам класса с использованием оператора точки (.)....233

Обращение к членам класса с использованием оператора указателя (->)....233

Ключевые слова public и private....235

Абстракция данных с помощью ключевого слова private....237

Конструкторы....238

Объявление и реализация конструктора....238

Когда и как использовать конструкторы....239

Перегрузка конструкторов....241

Класс без конструктора по умолчанию....243

Параметры конструктора со значениями по умолчанию....244

Конструкторы со списками инициализации....245

Деструктор....247

Объявление и реализация деструктора....247

Когда и как использовать деструкторы....248

Копирующий конструктор....251

Поверхностное копирование и связанные с ним проблемы....251

Глубокое копирование с использованием копирующего конструктора....253

Перемещающий конструктор улучшает производительность....258

Способы использования конструкторов и деструктора....259

Класс, который не разрешает себя копировать....259

Класс-синглтон, обеспечивающий наличие только одного экземпляра....260

Класс, запрещающий создание экземпляра в стеке....263

Применение конструкторов для преобразования типов....265

Указатель this....267

Размер класса....268

Чем структура отличается от класса....270

Объявление друзей класса....271

Специальный механизм хранения данных — union....273

Объявление объединения....273

Где используется объединение....274

Агрегатная инициализация классов и структур....276

constexpr с классами и объектами....279

Резюме....280

Вопросы и ответы....280

Коллоквиум....281

Контрольные вопросы....281

Упражнения....282

ЗАНЯТИЕ 10. Реализация наследования....284

Основы наследования....285

Наследование и порождение....285

Синтаксис наследования C++....287

Модификатор доступа protected....289

Инициализация базового класса — передача параметров базовому классу....291

Перекрытие методов базового класса в производном....294

Вызов перекрытых методов базового класса....296

Вызов методов базового класса в производном классе....297

Производный класс, скрывающий методы базового класса....299

Порядок конструирования....301

Порядок деструкции....301

Закрытое наследование....304

Защищенное наследование....306

Проблема срезки....309

Множественное наследование....310

Запрет наследования с помощью ключевого слова final....312

Резюме....314

Вопросы и ответы....314

Коллоквиум....314

Контрольные вопросы....315

Упражнения....315

ЗАНЯТИЕ 11. Полиморфизм....316

Основы полиморфизма....317

Потребность в полиморфном поведении....317

Полиморфное поведение, реализованное с помощью виртуальных функций....319

Необходимость виртуальных деструкторов....321

Как работают виртуальные функции. Понятие таблицы виртуальных функций....325

Абстрактные классы и чисто виртуальные функции....329

Использование виртуального наследования для решения проблемы ромба....331

Ключевое слово override для указания преднамеренного перекрытия....336

Использование ключевого слова final для предотвращения перекрытия функции....337

Виртуальные копирующие конструкторы?....337

Резюме....341

Вопросы и ответы....341

Коллоквиум....342

Контрольные вопросы....342

Упражнения....343

ЗАНЯТИЕ 12. Типы операторов и их перегрузка....344

Что такое операторы C++....345

Унарные операторы....346

Типы унарных операторов....346

Программирование унарного оператора инкремента или декремента....346

Создание операторов преобразования....349

Создание оператора разыменования (*) и оператора выбора члена (->)....352

Бинарные операторы....354

Типы бинарных операторов....354

Создание бинарных операторов сложения (а+b) и вычитания (а-Ь)....355

Реализация операторов сложения с присваиванием (+=) и вычитания с присваиванием (-=)....358

Перегрузка операторов равенства (=) и неравенства (! =)....360

Перегрузка операторов <, >, <= и >=....362

Перегрузка оператора копирующего присваивания (=)....364

Оператор индексации ([ ])....367

Оператор функции ()....370

Перемещающий конструктор и оператор перемещающего присваивания....371

Проблема излишнего копирования....371

Объявление перемещающих конструктора и оператора присваивания....372

Пользовательские литералы....377

Операторы, которые не могут быть перегружены....379

Резюме....380

Вопросы и ответы....380

Коллоквиум....381

Контрольные вопросы....381

Упражнения....381

ЗАНЯТИЕ 13. Операторы приведения....382

Потребность в приведении типов....383

Почему приведения в стиле С не нравятся некоторым программистам C++....384

Операторы приведения C++....384

Использование оператора static cast....385

Использование оператора dynamic cast и идентификация типа времени выполнения....386

Использование оператора reinterpret cast....389

Использование оператора const cast....390

Проблемы с операторами приведения C++....391

Резюме....393

Вопросы и ответы....393

Коллоквиум....393

Контрольные вопросы....394

Упражнения....394

ЗАНЯТИЕ 14. Введение в макросы и шаблоны....396

Препроцессор и компилятор....397

Использование #def ine для определения констант....397

Использование макроса для защиты от множественного включения....400

Использование директивы #define для написания макрофункции....401

Зачем все эти скобки?....403

Использование макроса assert для проверки выражений....403

Преимущества и недостатки использования макрофункций....405

Введение в шаблоны....406

Синтаксис объявления шаблона....407

Типы объявлений шаблонов....407

Шаблонные функции....408

Шаблоны и безопасность типов....410

Шаблонные классы....410

Объявление шаблонов с несколькими параметрами....411

Объявление шаблонов параметрами по умолчанию....412

Простой шаблон класса Holds Pair....412

Инстанцирование и специализация шаблона....414

Шаблонные классы и статические члены....416

Шаблоны с переменным количеством параметров (вариадические шаблоны)....417

Использование static assert для выполнения проверок времени компиляции....421

Использование шаблонов в практическом программировании на C++....422

Резюме....423

Вопросы и ответы....423

Коллоквиум....424

Контрольные вопросы....424

Упражнения....424

ЧАСТЬ III. Стандартная библиотека шаблонов....426

ЗАНЯТИЕ 15. Введение в стандартную библиотеку шаблонов....428

Контейнеры STL....429

Последовательные контейнеры....429

Ассоциативные контейнеры....430

Адаптеры контейнеров....432

Итераторы STL....432

Алгоритмы STL....433

Взаимодействие контейнеров и алгоритмов с использованием итераторов....433

Использование ключевого слова auto для определения типа....435

Выбор правильного контейнера....436

Классы строк библиотеки STL....438

Резюме....438

Вопросы и ответы....438

Коллоквиум....439

Контрольные вопросы....439

ЗАНЯТИЕ 16. Класс строки библиотеки STL....440

Потребность в классах обработки строк....441

Работа с классом строки STL....442

Создание экземпляров и копий строк STL....442

Доступ к символу в строке std:: string....444

Конкатенация строк....446

Поиск символа или подстроки в строке....447

Усечение строк STL....449

Обращение строки....451

Смена регистра символов....452

Реализация строки на базе шаблона STL....454

Оператор ,,f,s в std:: string в С++14....454

Резюме....455

Вопросы и ответы....456

Коллоквиум....456

Контрольные вопросы....456

Упражнения....456

ЗАНЯТИЕ 17. Классы динамических массивов библиотеки STL....458

Характеристики класса std:: vector....459

Типичные операции с вектором....459

Создание экземпляра вектора....459

Вставка элементов в конец вектора с помощью push back ()....461

Инициализация списком....462

Вставка элементов в определенную позицию с помощью insert ()....462

Доступ к элементам вектора с использованием семантики массива....465

Доступ к элементам вектора с использованием семантики указателя....466

Удаление элементов из вектора....467

Концепции размера и емкости....469

Класс deque библиотеки STL....471

Резюме....474

Вопросы и ответы....474

Коллоквиум....475

Контрольные вопросы....475

Упражнения....475

ЗАНЯТИЕ 18. Классы list И forward_list....476

Характеристики класса std:: list....477

Основные операции со списком....477

Инстанцирование класса std:: list....477

Вставка элементов в начало и в конец списка....479

Вставка в середину списка....480

Удаление элементов из списка....483

Обращение списка и сортировка его элементов....484

Обращение элементов списка с помощью list:: reverse ()....485

Сортировка элементов....486

Сортировка и удаление элементов из списка, который содержит объекты класса....488

Шаблон класса std:: forward list....491

Резюме....493

Вопросы и ответы....493

Коллоквиум....494

Контрольные вопросы....494

Упражнения....494

ЗАНЯТИЕ 19. Классы множеств STL....496

Введение в классы множеств STL....497

Фундаментальные операции с классами set и multiset....497

Инстанцирование объекта std:: set....498

Вставка элементов в множество и мультимножество....500

Поиск элементов в множестве и мультимножестве....501

Удаление элементов из множества и мультимножества....503

Преимущества и недостатки использования множеств и мультимножеств....508

Реализация хеш-множеств std: :unordered_set и std::unordered_multiset....508

Резюме....512

Вопросы и ответы....512

Коллоквиум....512

Контрольные вопросы....513

Упражнения....513

ЗАНЯТИЕ 20. Классы отображений библиотеки STL....514

Введение в классы отображений библиотеки STL....515

Фундаментальные операции с классами std: :map и std: :multimap....516

Инстанцирование классов std: :map и std: :multimap....516

Вставка элементов в map и multimap....518

Поиск элементов в отображении....520

Поиск элементов в мультиотображении STL....523

Удаление элементов из тар и multimap....523

Применение пользовательского предиката....525

Контейнер для пар “ключ-значение” на базе хеш-таблиц....529

Как работают хеш-таблицы....529

Использование unordered_map и unordered_multimap....530

Резюме....534

Вопросы и ответы....534

Коллоквиум....535

Контрольные вопросы....535

Упражнения....535

ЧАСТЬ IV. Углубляемся в STL....536

ЗАНЯТИЕ 21. Понятие о функциональных объектах....538

Концепция функциональных объектов и предикатов....539

Типичные приложения функциональных объектов....539

Унарные функции....539

Унарный предикат....544

Бинарные функции....546

Бинарный предикат....548

Резюме....551

Вопросы и ответы....551

Коллоквиум....551

Контрольные вопросы....551

Упражнения....552

ЗАНЯТИЕ 22. Лямбда-выражения языка С++11....554

Что такое лямбда-выражение....555

Как определить лямбда-выражение....556

Лямбда-выражение для унарной функции....556

Лямбда-выражение для унарного предиката....558

Лямбда-выражения с состоянием и списки захвата [... ]....559

Обобщенный синтаксис лямбда-выражений....561

Лямбда-выражение для бинарной функции....562

Лямбда-выражение для бинарного предиката....564

Резюме....566

Вопросы и ответы....566

Коллоквиум....567

Контрольные вопросы....567

Упражнения....567

ЗАНЯТИЕ 23. Алгоритмы библиотеки STL....568

Что такое алгоритмы STL....569

Классификация алгоритмов STL....569

Не изменяющие алгоритмы....569

Изменяющие алгоритмы....570

Использование алгоритмов STL....572

Поиск элементов по заданному значению или условию....572

Подсчет элементов с использованием значения или условия....574

Поиск элемента или диапазона в коллекции....576

Инициализация элементов в контейнере заданным значением....578

Использование алгоритма std:: generate () для инициализации значениями, генерируемыми во время выполнения....580

Обработка элементов диапазона с использованием алгоритма for each ()....582

Выполнение преобразований с помощью алгоритма std:: transform ()....584

Операции копирования и удаления....586

Замена значений и элементов с использованием условия....589

Сортировка, поиск в отсортированной коллекции и удаление дубликатов....591

Разделение диапазона....593

Вставка элементов в отсортированную коллекцию....595

Резюме....598

Вопросы и ответы....598

Коллоквиум....599

Контрольные вопросы....599

Упражнения....599

ЗАНЯТИЕ 24. Адаптивные контейнеры: стек и очередь....600

Поведенческие характеристики стеков и очередей....601

Стеки....601

Очереди....601

Использование класса STL stack....602

Создание экземпляра стека....602

Функции-члены класса stack....603

Вставка и извлечение с помощью методов push () и pop ()....604

Использование класса STL queue....606

Создание экземпляра очереди....606

Функции-члены класса queue....607

Вставка в конец и извлечение из начала очереди с использованием методов push () и pop ()....608

Использование класса STL priority queue....609

Создание экземпляра очереди с приоритетами....609

Функции-члены класса priority queue....611

Вставка в конец и извлечение из начала очереди с приоритетами с использованием методов push () и pop ()....612

Резюме....614

Вопросы и ответы....614

Коллоквиум....614

Контрольные вопросы....615

Упражнения....615

ЗАНЯТИЕ 25. Работа с битовыми флагами при использовании библиотеки STL....616

Класс bitset....617

Инстанцирование класса std: :bitset....617

Использование класса std: :bitset и его членов....618

Полезные операторы, предоставляемые классом std: :bitset....619

Методы класса std::bitset....619

Класс vector....622

Создание экземпляра класса vector....622

Функции и операторы класса vector....623

Резюме....624

Вопросы и ответы....624

Коллоквиум....625

Контрольные вопросы....625

Упражнения....625

ЧАСТЬ V. Сложные концепции C++....626

ЗАНЯТИЕ 26. Понятие интеллектуальных указателей....628

Что такое интеллектуальный указатель....629

Проблемы обычных указателей....629

Чем могут помочь интеллектуальные указатели....629

Как реализованы интеллектуальные указатели....630

Типы интеллектуальных указателей....631

Глубокое копирование....632

Механизм копирования при записи....634

Интеллектуальные указатели со счетчиком ссылок....634

Интеллектуальный указатель со списком ссылок....635

Деструктивное копирование....635

Использование интеллектуального указателя std: :unique_ptr....638

Популярные библиотеки интеллектуальных указателей....640

Резюме....640

Вопросы и ответы....640

Коллоквиум....641

Контрольные вопросы....641

Упражнения....641

ЗАНЯТИЕ 27. Применение потоков для ввода и вывода....642

Концепция потоков....643

Важнейшие классы и объекты потоков C++....644

Использование std:: cout для вывода форматированных данных на консоль....645

Изменение формата представления чисел....646

Выравнивание текста и установка ширины поля....648

Использование std:: cin для ввода....649

Использование std:: cin для ввода простых старых типов данных....649

Использование метода std:: cin:: get () для ввода в буфер char*....650

Использование std:: cin для ввода в переменную типа std:: string....651

Использование потока std:: f stream для работы с файлом....653

Открытие и закрытие файла с помощью методов open () и close ()....653

Создание и запись текстового файла с использованием метода open () и оператора «....654

Чтение текстового файла с использованием метода open () и оператора »....656

Запись и чтение из бинарного файла....657

Использование std:: stringstream для преобразования строк....659

Резюме....661

Вопросы и ответы....661

Коллоквиум....661

Контрольные вопросы....661

Упражнения....662

ЗАНЯТИЕ 28. Обработка исключений....664

Что такое исключение....665

Что вызывает исключения....665

Реализация безопасности в отношении исключений с помощью блоков try и catch....666

Использование блока catch (...) для обработки всех исключений....666

Обработка исключения конкретного типа....667

Генерация исключения с помощью оператора throw....669

Как работает обработка исключений....670

Класс std: exception....672

Пользовательский класс исключения, производный от std:: exception....673

Резюме....675

Вопросы и ответы....676

Коллоквиум....676

Контрольные вопросы....677

Упражнения....677

ЗАНЯТИЕ 29. Что дальше....678

Чем отличаются современные процессоры....679

Как лучше использовать несколько ядер....680

Что такое поток....680

Зачем создавать многопоточные приложения....681

Как потоки осуществляют транзакцию данных....682

Использование мьютексов и семафоров для синхронизации потоков....683

Проблемы, вызываемые многопоточностью....683

Как писать отличный код C++....684

C++17: что новенького....685

Инициализация в if и switch....685

Гарантия устранения копирования....686

Устранение накладных расходов выделения памяти с помощью std:: string view....687

std:: variant как безопасная с точки зрения типов альтернатива объединению....687

Условная компиляция с использованием if constexpr....688

Усовершенствованные лямбда-выражения....689

Автоматический вывод типа для конструкторов....689

template....689

Изучение C++ на этом не заканчивается....689

Документация в вебе....689

Сетевые сообщества и помощь....690

Резюме....690

Вопросы и ответы....690

Коллоквиум....691

Контрольные вопросы....691

ЧАСТЬ VI. Приложения....692

ПРИЛОЖЕНИЕ А. Двоичные и шестнадцатеричные числа....694

Десятичная система счисления....695

Двоичная система счисления....695

Почему компьютеры используют двоичные числа....696

Что такое биты и байты....696

Сколько байтов в килобайте....696

Шестнадцатеричная система счисления....697

Зачем нужна шестнадцатеричная система....697

Преобразование в различные системы счисления....698

Обобщенный процесс преобразования....698

Преобразование десятичного числа в двоичное....698

Преобразование десятичного числа в шестнадцатеричное....699

ПРИЛОЖЕНИЕ Б. Ключевые слова языка C++....700

ПРИЛОЖЕНИЕ В. Приоритет операторов....702

ПРИЛОЖЕНИЕ Г. Коды ASCII....704

Таблица ASCII отображаемых символов....705

ПРИЛОЖЕНИЕ Д. Ответы....708

Ответы к занятию 1....708

Контрольные вопросы....708

Упражнения....708

Ответы к занятию 2....709

Контрольные вопросы....709

Упражнения....709

Ответы к занятию 3....710

Контрольные вопросы....710

Упражнения....710

Ответы к занятию 4....711

Контрольные вопросы....711

Упражнения....712

Ответы к занятию 5....712

Контрольные вопросы....712

Упражнения....713

Ответы к занятию 6....713

Контрольные вопросы....713

Упражнения....714

Ответы к занятию 7....717

Контрольные вопросы....717

Упражнения....717

Ответы к занятию 8....718

Контрольные вопросы....718

Упражнения....718

Ответы к занятию 9....718

Контрольные вопросы....718

Упражнения....719

Ответы к занятию 10....720

Контрольные вопросы....720

Упражнения....720

Ответы к занятию 11....721

Контрольные вопросы....721

Упражнения....721

Ответы к занятию 12....723

Контрольные вопросы....723

Упражнения....723

Ответы к занятию 13....724

Контрольные вопросы....724

Упражнения....724

Ответы к занятию 14....725

Контрольные вопросы....725

Упражнения....725

Ответы к занятию 15....726

Контрольные вопросы....726

Ответы к занятию 16....727

Контрольные вопросы....727

Упражнения....727

Ответы к занятию 17....730

Контрольные вопросы....730

Упражнения....730

Ответы к занятию 18....733

Контрольные вопросы....733

Упражнения....734

Ответы к занятию 19....735

Контрольные вопросы....735

Упражнения....735

Ответы к занятию 20....738

Контрольные вопросы....738

Упражнения....739

Ответы к занятию 21....739

Контрольные вопросы....739

Упражнения....739

Ответы к занятию 22....741

Контрольные вопросы....741

Упражнения....741

Ответы к занятию 23....742

Контрольные вопросы....742

Упражнения....743

Ответы к занятию 24....744

Контрольные вопросы....744

Упражнения....744

Ответы к занятию 25....744

Контрольные вопросы....744

Упражнения....745

Ответы к занятию 26....745

Контрольные вопросы....745

Упражнения....745

Ответы к занятию 27....746

Контрольные вопросы....746

Упражнения....747

Ответы к занятию 28....747

Контрольные вопросы....747

Упражнения....747

Ответы к занятию 29....747

Контрольные вопросы....747

ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ....748

2011 и 2014 годы были особенно важными для языка C++. В то время как новый стандарт С++11 внес в язык программирования кардинальные изменения, новые ключевые слова и конструкции, повышающие эффективность программирования, C++14 скорее добавил завершающие штрихи к возможностям, внесенным в язык стандартом С++11.

Эта книга поможет вам изучить язык C++11 маленькими шагами. Она специально разделена на отдельные занятия, на которых основные принципы этого языка объектно-ориентированного программирования излагаются с практической точки зрения. Вы сможете овладеть языком С++11, уделяя каждому занятию всего один час.

Наилучший способ изучения языка программирования — его практическое применение, поэтому в книге очень много разнообразных примеров кода, анализируя которые, вы улучшите свои знания языка программирования C++. Эти фрагменты кода протестированы с использованием последних версий компиляторов, имеющихся на момент написания книги, а именно — компиляторов Microsoft Visual C++ и GNU C++, которые охватывают большинство возможностей С++14.


Похожее:

Список отзывов:

Нет отзывов к книге.