fbpx
  • Nederlands
  • Engels

Cursus Advanced C++ Programmeren

Regio:
  • Training
  • Inhoud
  • Modules
  • Algemeen
    Algemeen
  • Reviews
  • Certificaat
  • Cursus Advanced C++ Programmeren : Training

    Doelgroep Cursus Advanced C++ Programmeren

    De cursus Advanced C++ is bedoeld voor developers die bekend zijn met C++ maar die zich willen verdiepen in de meer geavanceerde technieken en mogelijkheden van de taal.

    Voorkennis Cursus Advanced C++ Programmeren

    Om aan deze cursus deel te nemen is kennis van de basis concepten van C++ en uitgebreide ervaring met programmeren in C++ vereist. De deelnemers moeten vertrouwd zijn met onderwerpen als operator overloading, templates, virtual functions en polymorfisme.

    Uitvoering Training Advanced C++

    De theorie wordt behandeld aan de hand van presentatie slides. Illustratieve demo’s worden
    gebruikt om de behandelde concepten te verhelderen. Er is een sterke afwisseling van theorie en praktijk en ruime gelegenheid om te oefenen.

    Officieel Certificaat Advanced C++ Programmeren

    De deelnemers krijgen na het goed doorlopen van de cursus een officieel certificaat Advanced C++ Programmeren.

    Cursus Advanced C++ Programmeren
  • Cursus Advanced C++ Programmeren : Inhoud

    In de cursus Advanced C++ komen de nieuwe en geavanceerde aspecten van de C++ taal gebaseerd op de standaarden C++11, C++14, C++17 en C++20 ruimschoots aan de orde.

    C++11 Features

    De cursus gaat van start met een overzicht van de features die in C++11 zijn geïntroduceerd zoals type inference, initializer lists, range based for loop, lambda functies en strongly typed enums.

    Right References en Move Constructors

    Vervolgens wordt ingegaan op right references en de performance winsten die geboekt kunnen worden door move constructors naast copy constructors te gebruiken.

    Inheritance Toevoegingen

    Ook de nieuwe mogelijkheden met betrekking tot inheritance met de keywords default, delete, override en final komen aanbod. En passant wordt ingegaan op de implementatie van virtual functions en de noodzaak van virtual destructors.

    Smart Pointers

    Daarnaast wordt in detail gekeken naar smart pointers en hierbij komen unique pointers, shared pointers en weak pointers aan de orde.

    Operator Overloading en Templates

    Ook operator overloading en templates staan op het programma, waarbij ingegaan wordt op variadic templates en perfect forwarding.

    RAII Pattern

    Het modern C++ Resource Acquisition is Initialization ofwel RAII idioom komt aan de orde bij exception handling.

    Multithreading

    Threads evenals de synchronisatie tussen threads zijn onderdeel van de standaard en worden besproken. Hierbij wordt ook ingegaan op asynchrone calls met promises en futures.

    C++11, C++17 en C++20 Features

    Vervolgens komen specifieke C++11, C++17 en C++20 features aan bod zoals optional types, structured binding declarations en constructies uit de wereld van functioneel programmeren zoals fold expressions.

    Advanced STL

    De cursus besluit met een overzicht van geavanceerde mogelijkheden van de Standard Template Library STL.

  • Cursus Advanced C++ Programmeren : Modules

    Module 1 : Modern C++ Features

    Module 2 : Move Semantics

    Module 3 : Inheritance

    C++11 Features
    Type Inference
    Auto Keyword
    Deduction with decltype
    Uniform Initialization
    Initializer Lists
    Range Based for Loop
    Null Pointer Constant
    constexpr Keyword
    Static Asserts
    Lambda Functions
    Strongly Types Enums
    User Defined Literals
    Raw String Literals
    Reference Initialization
    References and Pointers
    Rvalues and Rvalues in C++
    Passing and Returning References
    Rvalue References
    Comparing Reference Types
    Rvalue Reference Usage
    Assignment Operator
    Copy Constructor
    Passing and Returning Objects
    Passing References to Objects
    Move Constructor
    Move Assignment Operator
    Golden Rule of 5
    default and delete Keyword
    Delegating Constructors
    Inheritance
    Calling Base Class Constructors
    Multiple Inheritance
    Virtual Derivation
    Polymorphism
    Virtual Functions
    Abstract Classes
    Interfaces in C++
    Destructors and Inheritance
    Virtual Destructors
    override Specifier
    final Specifier

    Module 4 : Smart Pointers

    Module 5 : Operator Overloading

    Module 6 : Templates

    unique_ptr
    Using unique_ptr
    Specialization for Arrays
    Replacement for std::auto_ptr
    std::make_unique
    shared _ptr Pointer
    Control Block
    shared_ptr Destruction Policy
    shared_ptr Interface
    Cyclic References
    weak_ptr
    Syntax Operator Overloading
    Overloading Numeric Types
    Overloading Overview
    Overloading Restrictions
    When not to Overload
    Operators as Class Members
    Operators as Friend Functions
    Overloading Stream Operators
    Overloading ostream and istream
    Overloading Unary Operators
    Overloading Binary Operators
    Template Functions
    Template Specialization
    Template Parameter List
    Inclusion Compilation Model
    Class Templates
    Template Member Functions
    Template Parameter Scope
    Templates and Statics
    Templates and Friends
    Alias Templates
    Perfect Forwarding

    Module 7 : Exception Handling

    Module 8 : Multiple Threads

    Module 9 : Synchronization

    Error Conditions and Exceptions
    Class Objects as Exceptions
    Parameter Catch Block
    Catching in Hierarchy
    Golden Rule
    Rethrowing Exceptions
    noexcept Specifier
    Preventing Resource Leaks
    RAII Idiom
    C++ Standard Exceptions
    User Defined Exceptions
    Exception Handling Costs
    Multiple Threads
    Benefits and Drawbacks
    Thread Class
    Joining Threads
    Detaching Threads
    Thread ID
    Callables
    Passing Parameters
    Pass by Reference
    Pass by std::ref and std::move
    Member Function as Thread
    Thread Local Storage
    Data Corruption
    Lock Guard
    Automatic Lock Management
    Mutex and RAII
    Recursive Locking
    Atomic Types
    Call Once
    Event Handling
    Condition Variables
    Wait and Notify
    Promises and Futures
    Asynchronous Tasks

    Module 10 : C++14-17-20 Features

    Module 11 : Standard Template Library

    Init-statement for if
    Selection Initialization
    Structured Binding Declarations
    const if Expressions
    Guaranteed Copy Elision
    Inline Variables
    Fold Expressions
    Optional Type
    Small String Allocations
    String View
    Generic lambdas
    Aggregate initialization
    STL Core Components
    Containers, Algorithms and Iterators
    Vectors, Lists and Dequeues
    Adapters and Associative Containers
    Maps and Hash Maps
    Bitsets
    STL Iterators
    Reverse and Iostream iterators
    Function objects
    STL Algorithms
    Predicates and Comparators
    STL Allocators
  • Cursus Advanced C++ Programmeren : Algemeen

    Cursusvorm

    Al onze cursussen zijn klassikale cursussen waarbij de cursisten aan de hand van een ervaren trainer met diepgaande materie kennis door de stof worden geleid. Theorie wordt steeds afgewisseld met oefeningen.

    Maatwerk

    We doen ook maatwerk  en passen dan de cursusinhoud aan op uw wensen. Op verzoek gaan we ook in op uw praktijkcases.

    Cursustijden

    De cursustijden zijn in pricipe van 9.30 tot 16.30. Maar we zijn hierin flexibel. Soms moeten mensen namelijk kinderen naar de opvang brengen of halen en komen andere tijden hun beter uit. In goed overleg kunnen we dan andere cursustijden afspreken.

    Hardware

    Wij zorgen voor de computers waarop de cursus gehouden kan worden. Op deze computer is de voor de cursus benodigde software al geinstalleerd. U hoeft geen laptop mee te nemen om aan de cursus te kunnen deelnemen. Als u liever op uw eigen laptop werkt kunt u hem desgewenst meenemen. De benodigde software wordt dan aan het begin van de cursus geinstalleerd.

    Software

    Onze cursussen worden over het algemeen gegeven met Open Source software zoals Eclipse, IntelliJ, Tomcat, Pycharm, Anaconda en Netbeans. Het digitale cursusmateriaal krijgt u na de cursus mee naar huis.

    Lunch

    De cursus is inclusief lunch die we in een restaurantje op loopafstand van het cursuslokaal gebruiken.

    Locaties

    De cursussen worden op diverse plaatsen in het land gepland. Een cursus gaat op een locatie door als er zich minimaal 3 mensen voor die locatie inschrijven. Als er inschrijvingen voor verschillende locaties zijn gaat de cursus door op onze hoofdlocatie is Houten net onder Utrecht. Een cursus op onze hoofdlocatie gaat ook door bij 2 inschrijvingen en regelmatig ook bij 1 inschrijving.  Overigens doen we ook cursussen op de locatie van de klant als men daar prijs op stelt.

    Copyright

    De intellectuele eigendomsrechten van de gepubliceerde cursus inhoud, ook wel aangeduid als infosheet, behoren toe aan SpiralTrain. Het is niet toegestaan de cursusinformatie, de infosheet, te publiceren in schiftelijke dan wel digitale vorm zonder de uitdrukkelijke toestemming van SpiralTrain. Onder de cursus inhoud dient te worden verstaan de beschrijving van de cursus inhoud in zinnen alsmede de indeling van de cursus in modules en onderwerpen in de modules.

  • Cursus Advanced C++ Programmeren : Reviews

    Twan : Vitestro
    Great course to get a deeper understanding of Modern C++. It was also very nice to see the links between C++ and other languages. Even my personal requests of treating topics that were strictly speaking out of scope were fitted into the course.
  • Cursus Advanced C++ Programmeren : Certificaat