HemSök efter kurserC++ Advanced Programming

C++ Advanced Programming

star_fullstar_fullstar_fullstar_fullstar_fullstar_empty

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++ Basic Programming 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.”

 

Andra har även varit intresserade av dessa kurser: