Opleiding: C++ Programmeren
In de cursus C++ Programmeren leren de deelnemers programmeren in de C++ programmeertaal.Verschillen tussen C en C++
Eerst worden de verschillen tussen C en C++ besproken voor wat betreft declaraties van variabelen, formatted output met de stream IO library, namespaces, function overloading en default function parameters.
References
Vervolgens wordt aandacht besteed aan de nieuwe C++ reference variabelen. Zowel Lvalue als Rvalue references worden besproken.
C++ Classes
Een belangrijk onderdeel van de cursus is het C++ class concept en de C++ implementatie van object georiënteerde principes als abstraction en encapsulation. Ook wordt aandacht besteed aan dynamische geheugen allocatie met new en delete en de rol van assignment operators en copy en move constructors.
Speciale kenmerken van classes, zoals statics, friends en iterators worden eveneens besproken.
Inheritance en Polymorfisme
Vervolgens staan ook de object georiënteerde principes van inheritance en polymorfisme op het programma. Daarbij komen de concepten van virtual functions, v-tables, dynamic binding en abstract classes ter sprake.
Operator Overloading
In C++ is het mogelijk om standaard operatoren een andere betekenis te geven en dit fenomeen wordt besproken in de module operator overloading.
Templates en Standard Template Library
Vervolgens komen belangrijke kenmerken van de C++ standard library aan bod zoals de String class en de principes van C++ templates en de Standard Template Library (STL).
Exception Handling
Tot slot wordt aandacht besteed aan exception handling en hoe dit is geïmplementeerd in C++. Een vervolg op deze cursus is de cursus Advanced C++ Programmeren.
Doelgroep Cursus C++ Programmeren
De cursus C++ Programmeren is bedoeld voor developers die in C++ willen leren programmeren en anderen die C++ code willen begrijpen.
Voorkennis Cursus C++ Programmeren
Om aan deze cursus te kunnen deelnemen is kennis van en ervaring met programmeren in C vereist.
Uitvoering Training C++ Programmeren
De theorie wordt behandeld aan de hand van presentatie slides en wordt afgewisseld met oefeningen. Illustratieve demo's worden gebruikt om de behandelde begrippen te verduidelijken. De tijden van de cursus zijn van 9.30 tot 16.30.
Certificering cursus C++ Programmeren
De deelnemers krijgen na het goed doorlopen van de training een officieel certificaat C++ Programmeren.
Modules
Module 1 : Intro C++
- Intro C++
- C++ TimeLine
- Comments in C++
- Namespace std
- Output and Error Stream
- Standard Input Stream
- cin and Strings
- Formatted Output
- Variable Declaration
- Scope Resolution Operator
- Inline Functions
- Default Function Arguments
- Overloading Functions
- Range based for loop
Module 2 : Variables and Types
- Standard Types
- Type Inference
- Auto Keyword
- Deduction with decltype
- Initialization
- Null Pointer Constant
- Strongly Types Enums
- Variable Scope
- Namespaces
- Using keyword and Directive
- Block Usage
- User Defined Literals
- Storage Classes
- const Qualifier
Module 3 : References
- References
- Reference Initialization
- References and Pointers
- Rvalues and Rvalues in C
- Rvalues and Rvalues in C++
- Reference to Constant
- Passing References
- Comparison Parameter Passing
- References as Return Values
- Returning lvalue
- Returning Reference to Global
- Rvalue References
- Comparing Reference Types
- Rvalue Reference Usage
Module 4 : Classes
- Classes and Objects
- Classes in C++
- Class Declaration
- Class Sections
- Constructor and Destructor
- Uniform Initialization
- Header and Sources Files
- Class Implementation
- Advantages Access Functions
- References to private Data
- this Pointer
- static Members
- Constant Objects
- Member Objects
- Friends
Module 5 : Dynamic Memory Allocation
- new and delete Operators
- Dynamic Arrays
- Classes with Pointer Data
- Assignment Operator
- Self-Assignment Problem
- Chained Assignments
- Assignment and Initialization
- Copy Constructors
- Passing Objects
- Returning Objects
- Passing References to Objects
- Move Constructor
- Move Assignment Operator
- Perfect Forwarding
- Delegating Constructors
Module 6 : Inheritance
- Inheritance
- Derived Classes in C++
- Class Hierarchy
- Redefining Member Functions
- Derived Class Constructors
- Base - Derived Class Conversion
- Pointer Conversions
- Virtual Functions
- Polymorphism
- Dynamic Binding
- Virtual Function Table
- Pure Virtual Functions
- Abstract Classes
- Multiple Inheritance
- Virtual Derivation
Module 7 : Operator Overloading
- Operator Overloading
- Overloading for Numeric Types
- Complex Type Example
- Overloading Rules
- Overloading Restrictions
- Not Overloadable Operators
- When not to Overload
- Numeric Class Overloading
- Operators as Friend
- Unary Overloading Operator
Module 8 : Exception Handling
- Exception Handling in C++
- Memory Exhaustion Handling
- Throwing Exceptions
- try Block
- catch Handlers
- Multiple catch Handlers
- Template Array Class
- Exceptions Array Class
- catch Order
- throw List
Module 9 : Templates
- What are Templates?
- Template Functions
- Template Specialization
- Template Parameter List
- Class Templates
- Template Parameter Scope
- Template Function Statics
- Template Class Statics
- Inclusion Compilation Model
- Templates and Friends
Module 10 : STL
- Standard Template Library
- STL Core Components
- STL Library Components
- STL Containers
- Vector Container
- Deque Container
- List Container
- STL Iterators
- STL Algorithms
- STL Allocators

