Object-Oriented Programming course, specialization 09.03.04 "Software Engineering," 2nd year.
Learn more about programming training at the iSpring Institute here: https://ispring.institute/software-en...
This lecture covers the key principles of organizing C++ programs. You'll learn why it's important to split code into multiple files, how to properly work with header (.h/.hpp) and implementation (.cpp) files, and become familiar with the principles of ODR and the use of inline functions.
We'll also explore a modern approach to C++20 modules: how they're structured, how they differ from #include, and how they help speed up compilation and improve project structure.
Then we'll examine arrays: their structure, initialization methods, multidimensional arrays, and the specifics of passing them to functions. C strings and working with array sizes are also covered.
Next, you'll learn about references in C++—how they work, why const references are needed, and how to use them in functions.
The lecture concludes with a discussion of namespaces: how they help structure code, avoid conflicts, and manage scope, including nested and unnamed namespaces.
Useful links:
Code examples, notes, and practical exercises for the OOP course: https://github.com/alexey-malov/oop
My Telegram channel to stay in touch: https://t.me/vivid_coding
Support me on Boosty: https://boosty.to/vivid-bw
Timecodes
0:00 Splitting code into .h and .cpp files
5:28 C++ Modules 20
9:15 Arrays
24:52 Links
37:13 Namespaces
43:16 Unnamed namespace
The opening theme features the song "Papa Mozhet v C" by the musical group "Scientific and Technical Rap" (https://vk.com/nii_rap)