Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

C++ Курс МФТИ

Коллекция примеров и упражнений по программированию на C++ из курса МФТИ.

Структура проекта

Проект организован по темам и содержит примеры кода с комментариями на русском языке:

1. Основы C++ (1_*.cpp)

  • 1_1.cpp - Базовые команды компиляции и выполнения программ
  • 1_2.cpp - Типы данных и их операции (vector, string)
  • 1_3.cpp - Основные типы данных
  • 1_3_types.cpp - Дополнительные примеры типов
  • 1_4.cpp - Условные операторы и циклы
  • 1_5.cpp - Функции
  • 1_6_*.cpp - Ошибки компиляции и неопределенное поведение

2. Составные типы (2_*.cpp)

  • 2_1_*.cpp - Указатели и работа с памятью
  • 2_2_*.cpp - Виды памяти (стек, куча) и утечки памяти
  • 2_3_*.cpp - Массивы и строки в стиле C
  • 2_4_*.cpp - Указатели на функции
  • 2_5_*.cpp - Ссылки
  • 2_6_*.cpp - Константность
  • 2_7_*.cpp - Приведения типов

3. Основы ООП (3_*.cpp)

  • 3_1_*.cpp - Классы и структуры, инкапсуляция
  • 3_2_*.cpp - Приватные члены и перегрузка
  • 3_3_*.cpp - Конструкторы и деструкторы
  • 3_4_*.cpp - Правило трех
  • 3_5_*.cpp - Константные и статические члены
  • 3_6_*.cpp - Перегрузка операторов
  • 3_7_*.cpp - Указатели на члены класса
  • 3_8_*.cpp - Перечисления (enum)

4. Наследование (4_*.cpp)

  • 4_1_*.cpp - Публичное, приватное и защищенное наследование
  • 4_2_*.cpp - Видимость членов при наследовании
  • 4_3_*.cpp - Размещение в памяти при наследовании
  • 4_4_*.cpp - Приведения типов при наследовании
  • 4_5_*.cpp - Множественное наследование
  • 4_6_*.cpp - Виртуальное наследование

5. Полиморфизм (5_*.cpp)

  • 5_1_*.cpp - Виртуальные функции
  • 5_2_*.cpp - Примеры использования виртуальных функций
  • 5_3_*.cpp - Абстрактные классы
  • 5_4_*.cpp - Динамическое приведение типов (dynamic_cast)
  • 5_7_*.cpp - Проблемы с виртуальными функциями

6. Шаблоны (6_*.cpp)

  • 6_1_*.cpp - Основы шаблонов
  • 6_2_*.cpp - Перегрузка шаблонов
  • 6_3_*.cpp - Специализация шаблонов
  • 6_4_*.cpp - Non-type template parameters
  • 6_5_*.cpp - Вычисления на этапе компиляции

Дополнительные примеры

  • binary_search.cpp - Реализация бинарного поиска
  • merge_sort.cpp - Алгоритм сортировки слиянием
  • quick_sort.cpp - Быстрая сортировка
  • class_vector.cpp - Реализация класса vector
  • matrix.cpp - Работа с матрицами
  • shapes.cpp - Примеры с геометрическими фигурами
  • testing.cpp - Примеры тестирования
  • inheritance_training.cpp - Дополнительные упражнения по наследованию
  • virtual_inheritance.cpp - Расширенные примеры виртуального наследования
  • compilers.cpp - Информация о компиляторах

Компиляция и запуск

Для компиляции используйте g++:

# Компиляция одного файла
g++ -o output_name source_file.cpp

# Компиляция с отладочной информацией
g++ -g -o output_name source_file.cpp

# Компиляция с оптимизацией
g++ -O2 -o output_name source_file.cpp

# Запуск
./output_name

Особенности

  • Все примеры содержат комментарии
  • Код демонстрирует различные аспекты C++ от базовых до продвинутых
  • Включены примеры как правильного, так и неправильного использования языка
  • Рассматриваются типичные ошибки и способы их избежания

Требования

  • Компилятор C++ с поддержкой стандарта C++11 или выше
  • Операционная система Linux/Unix (примеры команд в комментариях ориентированы на Linux)

Структура комментариев

Большинство файлов содержат:

  • Описание темы в начале файла
  • Комментарии к ключевым моментам кода
  • Примеры ошибок компиляции (CE - Compilation Error)
  • Примеры неопределенного поведения (UB - Undefined Behavior)
  • Объяснения особенностей языка C++

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages