The course teaches the concept of object-oriented programming using the C++ programming language. The C++ programming language stands out among other programming languages for its speed and saving of computer resources. C++ is used to build applications that are fast, efficiently manage the resources of the computer system and are capable of solving critical tasks such as embedded system software, operating systems, browsers, computer games and other applications.
The course covers the concepts of object-oriented programming: abstraction or class, encapsulation, inheritance, composition, polymorphism. The course also covers the following topics: operator overloading, errors and exceptions, the concept of generic programming implemented in C++ using templates.
1. Introduction. Software lifecycle. Concept of object-oriented programming, comparison with procedure-oriented programming. Overview and trends of the most popular programming languages
2. Basic concepts of object-oriented programming (OOP). Class as an abstract data type. Object as an instance of a class. Encapsulation and hiding. Class design and implementation in the C++ programming language
3. Constructors in C++ classes, their types, constructor overloading
4. Static class elements. Reference this. Passing arguments (objects) to functions by value and by reference. Use of the const keyword - constant class functions, constant function arguments
5. Composition and aggregation
6. Class and "non-class" functions, comparison. Friend functions and friend classes
7. Operator overloading
8. Use of dynamic memory in a class. Definition of copy constructor and assignment operator. Shallow and deep copying
9. Inheritance
10. Polymorphism. Virtual functions. Pure virtual functions and abstract classes
11. Exceptions
12. Templates. STL (Standard Template Library) library functions and classes. 13. Data structures: stacks, queues, linked lists. Implementation of data structures in C++ using object-oriented programming approach