
Компиляция в C++: пошаговый разбор четырёх стадий
Что происходит между командой g++ main.cpp и готовым исполняемым файлом: препроцессор, компиляция, ассемблирование, компоновка. Разбираем каждую стадию на команде и видим её отдельный вывод.

Что происходит между командой g++ main.cpp и готовым исполняемым файлом: препроцессор, компиляция, ассемблирование, компоновка. Разбираем каждую стадию на команде и видим её отдельный вывод.

Как разделить код на .h и .cpp, что писать в заголовке, зачем нужны include guard и почему нельзя определять функции в шапке. Практический старт на C++17.

Разбираем, зачем C++ требует объявлять тип каждой переменной, чем int отличается от double и почему компилятор ловит ошибки ещё до запуска программы.

Ссылка в C++ — это второе имя для существующей переменной. Разбираем, как объявить ссылку, чем она отличается от указателя и где новичок ломает программу первым делом.

Пошаговая настройка компилятора C++ на Windows, macOS и Linux и сборка первой программы из командной строки. От установки до работающего hello.exe — около 20 минут.

Первое знакомство с указателями обычно заканчивается segmentation fault и часом непонимания. Разбираем, что такое указатель на самом деле, как его объявить, разыменовать и не выстрелить себе в ногу.

Невиртуальный деструктор, срезка объекта, ромбовидное наследование без virtual — четыре ошибки, из-за которых C++ течёт памятью и падает. Разбираем, почему так и как чинить.

За полчаса вы создадите первый класс на C++, разложите код по файлам .h и .cpp и скомпилируете рабочую программу. С чего начать и на чём спотыкаются новички.

Один и тот же параметр функции можно объявить пятью способами, и каждый диктует, сколько раз скопируется объект. Разбираем на примере std::string и std::vector, где копия стоит денег.

std::string, const char*, string_view — три способа работать с текстом в C++, и легко перепутать, кто владеет памятью. Разбираем ловушки, из-за которых программа падает или тихо портит данные.

Гонка данных в Go — это не просто флаг у race-детектора. Она диктует, как вы разбиваете код на горутины, где ставите границы владения данными и почему рефакторинг такой проблемы редко сводится к добавлению мьютекса.

К концу разбора вы объявите массив, заполните его, пройдёте циклом и поймёте, почему индексы начинаются с нуля и что происходит при выходе за границы. Займёт около получаса.