Course
Modern C++ programming («CPROGR»)
Course facts
- Using class libraries in your programs
- Understanding and using scopes and namespaces
- Using the string class to handle character strings
- Defining classes with their attributes and methods
- Understanding classes as a tool for information hiding
- Implementing and inserting constructors
- Modularizing codes in a practical way
- Defining a class hierarchy
- Knowing the different visibility of class elements in relation to derivation
- Using the operators new and delete
- Creating a program with dynamic memory management
- Knowing the advantages of smart pointers
- Understanding unique_ptr and shared_pr
- Defining virtual methods for dynamic binding
- Defining interfaces with purely virtual functions and abstract classes
- Accessing files with streams
- Acquiring a basic understanding of templates
- Applying the containers vector, deque, list, set map, unordered_set correctly
- Searching and sorting data efficiently with STL algorithms
- Understanding the functionality of error handling with exceptions
The course consists of the following modules. The weighting and selection of the modules is adapted to the knowledge and preferences of the participants.
1 Basic features
- Namespace
- References
- Overloading functions
2 Important standard classes
- Use of streams
- String
- Vector
3 Classes
- Class definition and instantiation
- Attributes (data elements)
- Accessing class elements
- Methods (element functions)
- Information hiding
- Constructor
4 Modules and interfaces
- Declaration and definition
- Inline functions
- Static class elements
5 Class derivation, inheritance
- Inheritance and visibility of elements
- Initialization of base classes
- Inheritance and polymorphism
6 Dynamic memory management
- New operator
- Delete operator
- Using Dynamic Instances
7 Normal form for classes
- Copy constructor
- Deep copy
- Prevent copying
- Destructor
- Assignment operator
- Move, Rvalue references
8 Smart pointer
- Unique_ptr
- Shared_ptr
9 Virtual methods
- Static binding
- Dynamic binding
- Virtual methods
- Abstract classes
10 Input and output to files
11 Templates
- Define templates
- Applying templates
- Function templates
12 The Standard Template Library (STL)
13 Container
- Vector, deque
- List
- Set
- Map
14 Functions and function objects
- Lambda expression
- Predicate, equality and equivalence
15 Algorithms
16 Exceptions
- Throw / try / catch
- Exception hierarchies
C/C++ programmers who want to develop object-oriented C++ programs. Project managers in the C++ environment who want to use C++ productively and efficiently.
You must at least know the basics of the languages C or C++. We recommend basic knowledge of object-oriented programming according to the following courses: