Этот сайт использует cookies. Продолжение работы с сайтом означает, что Вы согласны!
Самоучитель по C++ (компилятор MinGW-W64) на русском онлайн
Если вы хотите научиться программировать на языках C или C++, то этот самоучитель по C++ на русском онлайн для вас. Описан базовый синтаксис современного языка C++: типы данных, операторы, условия, циклы, работа с числами, строками, массивами и указателями, создание пользовательских функций и модулей. Рассмотрены основные функции стандартной библиотеки языка C++, а также функции, применяемые только в операционной системе Windows. Для написания, компиляции и запуска программ используется редактор Eclipse, а для создания исполняемого файла — компилятор g++.exe версии 8.2, входящий в состав популярной библиотеки MinGW-W64.
Самоучитель содержит большое количество практических примеров, помогающих начать программировать на языке C++ самостоятельно. Весь материал тщательно подобран, хорошо структурирован и компактно изложен, что позволяет использовать руководство как удобный справочник.
Требования к читателям: умение пользоваться компьютером. Желательно знание любого другого языка программирования. Если Вы только начинаете, то лучше начните c языка Python или с учебника JavaScript онлайн. У последнего синтаксис очень похож на синтаксис языка C++, но при этом не нужно думать про указатели и утечку памяти.
Оглавление учебника (самоучителя) по C++ (MinGW-W64)
Глава 1. Установка программ под Windows
Глава 2. Первые шаги
Глава 3. Переменные и типы данных
Глава 4. Операторы и циклы
Глава 5. Числа
Глава 6. Массивы
Глава 7. Символы и C-строки
Глава 8. Широкие символы и L-строки
Глава 9. Классы string
и wstring
Глава 10. Регулярные выражения
Глава 11. Работа с датой и временем
Глава 12. Пользовательские функции
Глава 13. Объектно-ориентированное программирование
Глава 14. Перегрузка операторов
Глава 15. Шаблонные классы
Глава 16. Динамические массивы
Глава 17. Списки и очереди
Глава 18. Кортежи, словари и множества
Глава 19. Алгоритмы
Глава 1. Установка программ под Windows
1.1. Создание структуры каталогов
1.2. Добавление пути в переменную PATH
1.3. Работа с командной строкой
1.4. Установка MinGW и MSYS
1.5. Установка MinGW-W64
1.6. Установка MSYS2 и MinGW-W64
1.7. Установка и настройка редактора Eclipse
1.8. Создание проектов в редакторе Eclipse
Глава 2. Первые шаги
Глава 3. Переменные и типы данных
auto
3.6. Инструкция decltype
3.7. Оператор sizeof
и тип size_t
3.8. Инициализация переменных
3.9. Оператор typedef
3.10. Динамическое определение типа данных
3.11. Константы
3.12. Спецификаторы хранения
3.13. Области видимости переменных
3.14. Пространства имен
3.15. Массивы
3.16. Строки
3.17. Указатели
3.18. Ссылки
3.19. Динамическое выделение памяти в языке C++
3.19.1. Выделение памяти под один объект
3.19.2. Выделение памяти под массив
3.19.3. Выделение памяти без возбуждения исключения
3.20. Динамическое выделение памяти в языке C
3.20.1. Функции malloc()
и free()
3.20.2. Функция calloc()
3.20.3. Функция realloc()
3.21. Структуры
3.22. Битовые поля
3.23. Объединения
3.24. Перечисления
3.25. Приведение типов
Глава 4. Операторы и циклы
if
4.8. Оператор ?:
4.9. Оператор выбора switch
4.10. Циклы for
и for each
4.10.1. Цикл for
4.10.2. Цикл for each
4.11. Цикл while
4.12. Цикл do…while
4.13. Оператор continue
: переход на следующую итерацию цикла
4.14. Оператор break
: прерывание цикла
4.15. Оператор goto
Глава 5. Числа
NAN
Глава 6. Массивы
Глава 7. Символы и C-строки
Глава 8. Широкие символы и L-строки
char16_t
и char32_t
Глава 9. Классы string
и wstring
u16string
и u32string
9.18. Преобразование кодировок и типов
Глава 10. Регулярные выражения
regex_match()
: проверка полного соответствия шаблону
10.4. Функция regex_search()
: поиск соответствия шаблону
10.5. Класс match_results
: результаты поиска
10.6. Поиск всех совпадений с шаблоном
10.7. Функция regex_replace()
: замена в строке
10.8. Разделение строки на фрагменты по шаблону
Глава 11. Работа с датой и временем
Глава 12. Пользовательские функции
function
12.12.1. Указатели на функции
12.12.2. Класс function
12.13. Передача в функцию и возврат данных произвольного типа
12.14. Рекурсия
12.15. Встраиваемые функции
12.16. Лямбда-выражения
12.17. Ключевое слово constexpr
Глава 13. Объектно-ориентированное программирование
default
и delete
13.9. Статические поля и методы
13.10. Создание констант внутри класса
13.11. Константные методы
13.12. Дружественные функции и классы
13.13. Массивы объектов
13.14. Динамическое создание объектов
13.15. Указатели на объекты и члены класса
13.16. "Умные" указатели
13.16.1. Класс unique_ptr
: уникальный указатель
Управление одним объектом
Управление массивом
13.16.2. Класс shared_ptr
: совместно используемый указатель
Управление одним объектом
Управление массивом
13.16.3. Класс weak_ptr
: "слабый" указатель
13.17. Передача объектов в функцию и возврат объектов
13.18. Наследование
13.19. Множественное наследование
13.20. Указатели на объекты производных классов
13.21. Виртуальные методы
13.22. Динамическое определение типа объекта
13.23. Оператор dynamic_cast
13.24. Абстрактные методы и классы
13.25. Финальные методы и классы
13.26. Вложенные классы
13.26.1. Обычные вложенные классы
13.26.2. Локальные вложенные классы
13.27. Методы-фабрики
Глава 14. Перегрузка операторов
()
14.7. Перегрузка оператора []
14.8. Перегрузка оператора доступа к члену класса
14.9. Перегрузка операторов new
и delete
14.9.1. Выделение памяти под один объект
14.9.2. Выделение памяти под массив
14.9.3. Глобальные операторы new
и delete
14.9.4. Выделение памяти без возбуждения исключения
14.9.5. Прочие способы перегрузки
14.10. Перегрузка операторов <<
и >>
14.11. Преобразование объекта в другой тип данных
Глава 15. Шаблонные классы
Глава 16. Динамические массивы
array
: массив фиксированного размера
16.2.1. Создание массива и заполнение значениями
16.2.2. Доступ к элементам
16.2.3. Перебор элементов
16.3. Класс valarray
: динамический массив с числовыми значениями
16.3.1. Создание объекта
16.3.2. Определение и изменение количества элементов
16.3.3. Доступ к элементам
16.3.4. Перебор элементов
16.3.5. Поиск минимального и максимального значений
16.3.6. Смещение элементов
16.3.7. Вычисление суммы
16.3.8. Операторы и функции
16.3.9. Классы slice
и slice_array
: диапазон значений
16.3.10. Классы gslice
и gslice_array
: несколько диапазонов значений
16.3.11. Класс mask_array
: диапазон на основе маски
16.3.12. Класс indirect_array
: диапазон на основе массива с индексами
16.4. Класс vector
: динамический массив
16.4.1. Создание объекта
16.4.2. Вставка элементов
16.4.3. Определение и изменение количества элементов
16.4.4. Удаление элементов
16.4.5. Доступ к элементам
16.4.6. Перебор элементов
16.4.7. Специализация vector<bool>
16.5. Класс bitset
: набор битов фиксированного размера
16.5.1. Создание объекта
16.5.2. Выполнение операций
16.5.3. Получение и изменение значений
16.5.4. Преобразование набора битов в число или строку
Глава 17. Списки и очереди
list
: двусвязный список
17.1.1. Создание объекта
17.1.2. Вставка элементов
17.1.3. Определение и изменение количества элементов
17.1.4. Удаление элементов
17.1.5. Доступ к элементам
17.1.6. Перебор элементов
17.1.7. Сортировка списка
17.1.8. Переворачивание списка
17.1.9. Перенос элементов из одного списка в другой
17.1.10. Объединение упорядоченных списков
17.2. Класс forward_list
: односвязный список
17.2.1. Создание объекта
17.2.2. Вставка элементов
17.2.3. Определение и изменение количества элементов
17.2.4. Удаление элементов
17.2.5. Доступ к элементам
17.2.6. Перебор элементов
17.2.7. Сортировка списка
17.2.8. Переворачивание списка
17.2.9. Перенос элементов из одного списка в другой
17.2.10. Объединение упорядоченных списков
17.3. Класс deque
: двусторонняя очередь
17.3.1. Создание объекта
17.3.2. Вставка элементов
17.3.3. Определение и изменение количества элементов
17.3.4. Удаление элементов
17.3.5. Доступ к элементам
17.3.6. Перебор элементов
17.4. Класс queue
: односторонняя очередь
17.5. Класс stack
: стек
17.6. Класс priority_queue
: очередь с приоритетами
Глава 18. Кортежи, словари и множества
18.1. Класс
pair
: пара значений18.2. Класс
tuple
: кортеж18.3. Класс
map
и multimap
: ассоциативные массивы18.3.1. Создание объекта
18.3.2. Вставка элементов
18.3.3. Определение количества элементов
18.3.4. Удаление элементов
18.3.5. Доступ к элементам
18.3.6. Перебор элементов
18.3.7. Класс
multimap
: ассоциативный массив с повторяющимися ключами18.4. Классы
unordered_map
и unordered_multimap
: ассоциативные массивы18.4.1. Класс
hash
: хеш18.4.2. Создание объекта
18.4.3. Вставка элементов
18.4.4. Определение количества элементов
18.4.5. Удаление элементов
18.4.6. Доступ к элементам
18.4.7. Перебор элементов
18.5. Классы
set
и multiset
: множества18.5.1. Создание объекта
18.5.2. Вставка элементов
18.5.3. Определение количества элементов
18.5.4. Удаление элементов
18.5.5. Доступ к элементам
18.5.6. Перебор элементов
18.6. Классы
unordered_set
и unordered_multiset
: множества18.6.1. Создание объекта
18.6.2. Вставка элементов
18.6.3. Определение количества элементов
18.6.4. Удаление элементов
18.6.5. Доступ к элементам
18.6.6. Перебор элементов
Глава 19. Алгоритмы
19.1. Перебор элементов
19.2. Поиск минимального и максимального значений
19.3. Сравнение элементов
19.4. Изменение порядка следования элементов
19.5. Сортировка элементов
19.6. Поиск элементов
19.7. Замена значений элементов
19.8. Удаление элементов
19.9. Копирование и перемещение элементов
19.10. Работа с отсортированными диапазонами
19.11. Разделение диапазона на две группы
19.12. Работа с двоичной кучей
19.13. Работа с диапазонами чисел
Учебник C++ (MinGW-W64) в формате PDF
Учебник C++ (MinGW-W64) в формате PDF доступен для скачивания только спонсорам, пожертвовавшим на развитие сайта 800 р. и более в течение месяца. Для пожертвования воспользуйтесь формой для перевода, которая расположена ниже. В процессе перевода с помощью Яндекс.Денег или банковской карты (выберите удобный способ, установив флажок) укажите свой E-mail, на который Вам будет отправлен PDF-файл в течение 3-х рабочих дней. В назначении платежа должно быть указано "пожервование на развитие сайта". Если указано другое назначение, то перевод будет Вам возвращен за вычетом комиссии платежной системы.
PDF-файл предоставляется КАК ЕСТЬ. Автор не несет никакой ответственности за прямые или косвенные проблемы, связанные с использованием файла. ВЫ ИСПОЛЬЗУЕТЕ ЕГО НА СВОЙ СТРАХ И РИСК.
Если перевели пожертвование в Сбербанк, то напишите о факте на почту unicross @ yandex.ru (удалите пробелы до и после @).
Характеристики PDF-файла:
- Количество страниц: 849
- Последнее редактирование файла: 2019 г.
- Оглавление: см. выше
- Бонус: "Программирование на C++ в Visual Studio 2010 Express" в PDF
Все названия программных продуктов являются зарегистрированными торговыми марками соответствующих фирм.
Помощь сайту
ЮMoney (Yandex-деньги): 410011140483022
ПАО Сбербанк:
Счет: 40817810855006152256
Реквизиты банка:
Наименование: СЕВЕРО-ЗАПАДНЫЙ БАНК ПАО СБЕРБАНК
Корреспондентский счет: 30101810500000000653
БИК: 044030653
КПП: 784243001
ОКПО: 09171401
ОКОНХ: 96130
Скриншот реквизитов