English
Object-oriented programming in C++
Knowing C++ opens the way to developing system software, game engines, embedded systems and high-performance computing – fields where performance and control over resources matter most. The course requires no prior experience with C++ and teaches the modern C++26 standard from the start, and understanding how memory and objects work makes it easier to learn any other language.
The course is designed for students with no prior C++ programming experience. It covers the C++ language according to the C++26 standard in Microsoft Visual Studio 2026: from basic language constructs, functions and memory management to object-oriented programming, templates, concepts, the C++ standard library, file handling and modules. Each topic of the course combines a lecture with a lab assignment.
Course program
C++ language basics
- The C++ language and the C++26 standard, the Microsoft Visual Studio 2026 environment, your first program and the Git version control system
- Data types, variables, operators, console input and output (std::print) and control structures
- Functions: parameters, passing by reference, overloading, recursion
- Arrays, the strings std::string and std::string_view, the dynamic array std::vector
- Pointers, references and memory management: the new and delete operators, smart pointers
- Debugging programs and handling errors: exceptions and std::expected
Object-oriented programming
- Classes and objects: fields, methods, constructors, destructors, encapsulation
- Copying and moving objects, the RAII idiom, the rules of zero, three and five
- Operator overloading and friend functions
- Inheritance, virtual functions and polymorphism
- Abstract classes, interfaces and multiple inheritance
Generic programming and the standard library
- Function and class templates, concepts
- Standard library containers: vector, list, deque, set, map,
unordered_map - Iterators, algorithms, ranges and lambda expressions
- Input/output streams, working with text and binary files, the std::filesystem library
- C++ modules, organizing multi-file projects and new features of the C++26 standard
Required software
| Software | Purpose | Topic |
|---|---|---|
| Visual Studio 2026 Community with the Desktop development with C++ workload (MSVC, Windows SDK, CMake tools, AddressSanitizer) | Development environment, compiler and debugger | 1 |
| Git for Windows | Version control | 1 |
| CMake 4.2 or later (CMake tools from Visual Studio or a separate install) | Building projects with C++26 modules | 16 |
A GitHub account is needed only for the optional publishing of your repository.
How a course is organized
A course is divided into topics. Each topic corresponds to one lecture and one lab assignment and has four parts:
- Lecture. The theory is split into chapters in reading order, with code examples, diagrams and program output.
- Practice. Worked examples with complete code that show how to do the lab assignment.
- Tasks. 30 variants of the lab assignment, each at three levels of difficulty: 1 – initial, 2 – basic, 3 – advanced. Every task is self-contained, so you can start right away at the level you choose.
- Summary. The topic’s conclusions, self-check questions and useful links.
To prepare for assessment, every course also has Review questions, Review tasks, Useful links and Recommended reading.
How to study
- Open your course and install the development environment named on the course page. The first topic of each course explains how, except “Object-oriented programming in C# II”, which uses the environment from the “Object-oriented programming in C# I” course.
- Read the lecture chapters in order. Type in and run the examples yourself rather than just reading them.
- On the Practice page, first try to solve the problem yourself, then compare your solution with the worked one.
- On the Tasks page, find your variant (your teacher gives you its number) and choose a level of difficulty.
- Check yourself with the questions on the Summary page, and only then move on to the next topic.
- Before the exam, go over the Review questions and solve a few Review tasks.
Navigation
The topics and their chapters are listed in the menu on the left (on a phone, open it with the “Menu” button). The “Next page” button at the bottom of every page follows the course program, and the “On this page” list on the right takes you to a section.
Course materials
- Review questions — 100 questions on the course topics for self-check and exam preparation
- Review tasks — practical tasks by topic
- Useful links — documentation and online resources
- Recommended reading — textbooks and study guides