Code: PRG300
Duration in days: 5
Download: Infosheet
€ 2200

Course C++ Programming

12-03 till 16-03-2018
09-04 till 13-04-2018
14-05 till 18-05-2018
11-06 till 15-06-2018
09-07 till 13-07-2018
Your starting date

Audience C++ Programming Course

Course C++ Programming This course is targeted at developers who want to learn programming in C++ and others who want to understand C++ code.

Prerequisites Course C++ Programming

Knowledge of and experience with C programming is required to attend this course.

Realization Training C++ Programming

The theory is treated on the basis of presentation slides and is interspersed with exercises. Illustrative demos are used to clarify the discussed concepts. The course material is in English.

Certification C++ Programming

Participants receive an official certificate C++ Programming after successful completion of the course.

Contents Course C++ Programming

In the course C++ Programming participants learn to program in the C++ language. The course treats the C++ 11 and C++ 14 standards. First the differences between C and C++ are discussed concerning variable declarations, formatted output with the stream IO library, namespaces, function overloading and default function parameters. Subsequently the new C++ reference variables are discussed. Attention is paid to both Lvalue and Rvalue references. An important element of the course is the C++ class concept and C++ implementation of object-oriented principles such as abstraction and encapsulation. Attention is paid to dynamic memory allocation with new and delete and the role of assignment operators and copy and move constructors. Also special features of classes such as statics, friends and iterators are discussed. Next the object-oriented principles of inheritance and polymorphism are part of the subject matter. This includes the concepts of virtual functions, v-tables, dynamic binding and abstract classes. C++ has the option to give existing operators a different meaning and this phenomenon is discussed in the module operator overloading. Attention is paid to important features of the standard C++ library like the String class and the base concepts of C++ templates and the Standard Template Library (STL). Finally exception handling and how this is implemented in C++ is addressed.

Module 1 : Intro C++

Module 2 : Variables and Types

Module 3 : References

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
Standard Types
Type Inference
Auto Keyword
Deduction with decltype
Null Pointer Constant
Strongly Types Enums
Variable Scope
Using keyword
Using Directive
Block Usage
User Defined Literals
Raw String Literals
Storage Classes
const Qualifier
const Pointers
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
Potential Error
Returning lvalue
Returning Reference to Global
Rvalue References
Rvalue Reference Syntax
Comparing Reference Types
Rvalue Reference Usage

Module 4 : Classes

Module 5 : Dynamic Memory Allocation

Module 6 : Inheritance and Polymorphism

Classes and Objects
Example Class and Objects
Classes in C++
New Data Type in C
Class Declaration
Formal Class Declaration Syntax
Class Sections
Constructor and Destructor
Uniform Initialization
Header and Sources Files
Class Implementation
Class Usage
Advantages Access Functions
References to private Data
this Pointer
static Members
Constant Objects
Member Objects
Composition Example
Dynamic Memory Allocation
new Operator
delete Operator
Dynamic Arrays
Classes with Pointer Data
Assignment Operator
Self-Assignment Problem
Chained Assignments
Assignment and Initialization
Initialization with Copy Constructor
Copy Constructors
Passing Objects
Returning Objects
Passing References to Objects
Move Constructor
Move Semantics
Move Assignment Operator
Perfect Forwarding
Delegating Constructors
Type Relations in C and C++
Derived Classes in C++
Class Hierarchy
Redefining Member Functions
Calling Redefined Members
Derived Class Constructors
Base – Derived Class Conversion
Pointer Conversions
Virtual Functions
Dynamic Binding
Virtual Function Implementation
Virtual Function Table
Pure Virtual Functions
Abstract Classes
Multiple Inheritance
Duplication of Data Members
Virtual Derivation

Module 7 : Operator Overloading

Module 8 : Exception Handling

Module 9 : Templates

Operator Overloading
Overloading for Numeric Types
Complex Type Example
Overloading Rules
Overloading Restrictions
Not Overloadable Operators
When not to Overload
Numeric Class Overloading
Fraction Class Example
Operators as Friend
Unary Overloading Operator
Exception Handling in C++
Memory Exhaustion Handling
Exception Handling Principles
Throwing Exceptions
try Block
catch Handlers
Division By Zero Example
Benefits Exception Handling
Multiple catch Handlers
Template Array Class
Exceptions Array Class
catch Order
throw List
What are Templates?
Need for Templates
Template Functions
Template Specialization
Template Syntax
Template Function Usage
Using Function Templates
Template Parameter List
Class Templates
Template Member Functions
Implementing Member Functions
Template Class Usage
Template Parameter Scope
Template Function Statics
Template Class Statics
Inclusion Compilation Model
Templates and Friends

Standard Template Library

Why STL?
STL Core Components
STL Library Components
STL Containers
Sequential Containers
Vector Container
Deque Container
List Container
STL Iterators
STL Algorithms
STL Allocators
SLT Pairs
STL Operators
STL Header Files

SpiralTrain BV

Gebouw "De Sijnsmeester"
Standerdmolen 8 – 1.11
3995 AA Houten

IP Computer Training Centrum
Diemerhof 32-36
1112 XN Diemen

020 7600027

Compu Act Opleidingen
Slinge 303
3085 ER Rotterdam

023 - 551 3409

Kleine Singel 33
3572 CG Utrecht

030 - 737 05 81

IP Computer Training Centrum
Leenderweg 292
5644 AE Eindhoven

040 - 256 65 20