C++ Advanced Programming






This is the course for experienced C++ programmers with a need to expand their skills into a complete knowledge of the language and new ways to use it for stable, effective and well designed applications. The course is fully updated and is platform and IDE independent.
Course focus is on the language itself and the most widely used idioms. Several labs illustrate the theory. Among the lab themes are resource allocation, advanced operator overloading, smart pointers, function objects, interfaces and abstract classes, exception safety, move semantics and forward references.
Utbildningsformer
Remote
Längd
4 dagar
Pris
32950 kr
Target Group
Developers with a good working knowledge of everyday C++, as from any basic course plus practical experience.
Prerequisites
Working knowledge of C++, as from C++ Programming - Introduction plus practical experience
Outline of C++ Advanced Programming
Module 1. Introduction
Module 2. Compiler Generated Member Functions
- Default constructor
- Copy constructor
- Assignment operator
- Single argument constructor
- Resource allocating classes
- Move semantics
- Initializer list constructors
Module 3. Class Members
- Nested types
- Aliases
- Static members
- Const members
- Reference members
- Enum as a member
- Ref qualified methods
- Function pointers and method pointers
- Type inference
- Structured binding
Module 4. Inheritance and Interfaces
- Overrides
- Inheriting constructors
- Multiple inheritance
- Object identity
- Virtual calls from constructor/destructor
- Abstract base classes
- Interface
- Safe downcasting
Module 5. Operator Overloading
- Restrictions
- Member or friend
- Priority/associativity/commutativity
- Increment/decrement operator
- Index operator
- Type converters
- Bool operator
- User defined literals
Module 6. Preprocessor Directives
- Macros
- Conditional compilation
- Include guard
- Conditional compilation
- String operator
- Catenation operator
Module 7. Templates
- Type polymorphism
- Instantiation
- Function templates
- Class templates
- Type and value parameters
- Templates and inheritance
- Specializations and partial specializations
- Static members
- Explicit instantiation requests
Module 8. Exceptions
- Throw
- Exception classes
- Catch
- Exception declarations
- Alternative designs
Module 9. Namespaces
- Declaration
- Nested namespaces
- Alias
- Using and namespaces
- Namespace std
- Unnamed namespaces
Module 10. Copy-Swap and Exception Safety
- Exception Safety
- Copy-Swap for Assignment
- std::swap and std::move
- Copy-Swap for General Use
Module 11. Function Objects
- The function call operator
- Function pointer callback
- Lambda expressions
- The function standard class
- Policy objects
- Event objects
Module 12. Universal Forward References
- Overloading on lvalue/rvalue
- Creating a Forward Reference
- Perfect Forwarding
Module 13. Smart Pointers and Iterators
- Smart Pointers ownership
- Schemes for ownership transfer
- The Standard Library smart pointers
- Iterators
- The Standard Library Iterators
- Range based for
Module 14. Standard Library Containers
- Overview collections and algorithms
- Templated collections in more detail
- The string class
- Iterators
- Data types
- Assessing time and time complexity
Module 15. Miscellaneous Standard Classes (optional)
- Streams library
- Filesystem
- Thread and synchronization classes
- Random numbers
- Regular expressions
- Time
Referenser
- ”Jag tycker upplägget på kursen var bra varvat med teori och labbar. Det fanns gott om utrymme för att diskutera de olika ämnena utan att man kände att det tog av något annat ämne vi skulle gå igenom.Läraren var väldigt pedagogisk och svarade mer än gärna på alla frågor man hade.”
- ”Är väldigt nöjd. Bra lärare, trevliga lokaler. Tid för diskussioner och extra frågor.”
- ”Kursinnehållet var bra, speciellt move-semantik, operatoröverlagring och templating som kändes mycket givande.”