TOPICS
Structure and Content
Day 1- Learn about the differences between C and C++
Summary of C
A refresher on basic C syntax • Functions • Control flow • Fundamental types • Literals • Derived types • Operators • Standard libraries
From C to C-1999 and C++
The features added to C by C++ and the ANSI C-1999 standard • const • inline • Stream I/O • Function prototypes • Pass-by-reference • Default arguments • Function and operator overloading
Linkage and Storage
Learn some tricky features often overlooked in C, but necessary for C++ • Scope • Linkage • Linking C and C++ • Namespaces • Static, automatic and dynamic storage • Memory management • new • delete • Arrays • Pointers • Strings
C++ Development Environments for Desktop and Embedded Systems
Compilers • Linkers • Loaders • Debuggers • Integrated development environments • Cross-compilers • In-circuit emulation
Day 2- An introduction to object-oriented programming
Classes and Objects
Introduction to modelling and abstraction • Information hiding • Abstract data types • Classes and objects • Public and private class members • Member functions • Scope resolution
Constructors
How to ensure that objects are properly initialised, and how to tidy up afterwards • Constructors • Destructors • Copy constructors • Pointers and objects
Members and Friends
More features of C++ classes • Friends • Operator overloading • Overloading assignment • this • Static members • Constant objects and members
Structure and Content
Day 1- Learn about the differences between C and C++
Summary of C
A refresher on basic C syntax • Functions • Control flow • Fundamental types • Literals • Derived types • Operators • Standard libraries
From C to C-1999 and C++
The features added to C by C++ and the ANSI C-1999 standard • const • inline • Stream I/O • Function prototypes • Pass-by-reference • Default arguments • Function and operator overloading
Linkage and Storage
Learn some tricky features often overlooked in C, but necessary for C++ • Scope • Linkage • Linking C and C++ • Namespaces • Static, automatic and dynamic storage • Memory management • new • delete • Arrays • Pointers • Strings
C++ Development Environments for Desktop and Embedded Systems
Compilers • Linkers • Loaders • Debuggers • Integrated development environments • Cross-compilers • In-circuit emulation
Day 2– An introduction to object-oriented programming
Classes and Objects
Introduction to modelling and abstraction • Information hiding • Abstract data types • Classes and objects • Public and private class members • Member functions • Scope resolution
Constructors
How to ensure that objects are properly initialised, and how to tidy up afterwards • Constructors • Destructors • Copy constructors • Pointers and objects
Members and Friends
More features of C++ classes • Friends • Operator overloading • Overloading assignment • this • Static members • Constant objects and members
Day 3- Master the subtleties of object-oriented programming in C++
Object-Oriented Modelling and The UML
Learn the principles of object-oriented design • Class relationships • The Unified Modelling Language • Class and object diagrams • Association • Composition • Dependency • Implementing class relationships in C++ • Initialization of class members
Inheritance
Derived classes • Inheritance • Protected members • Casting pointers • Order of initialization
Virtual Functions
Inheriting common behaviour • Overriding methods • Virtual functions • Polymorphism • Late binding • Virtual destructors • Abstract base classes and pure virtual functions
Multiple Inheritance
Single Inheritance • Multiple inheritance • Virtual multiple inheritance • Interfaces • Composition again
Day 4- Learn to make use of some standard libraries and to develop your own class templates
Strings and Streams
The string class • I/O streams • I/O of user-defined types • Manipulators • Buffering • Formatted and unformatted streams
Further C++ Features
Run-Time Type Identification • Type casts • User-defined conversions • Nested classes • Pointer-to-member
Templates
Function templates • Class templates • Template arguments • Template specialization • Building simple data structures using templated and untemplated classes
Day 5 – Embedded Programming and Standard Libraries
Exceptions
Error handling • Throwing and catching exceptions • Handlers • Standard exception classes• Preventing memory leakage during exceptions
Principles of Embedded Programming
Concurrency • Threads • Synchronisation • Memory maps • Communicating with peripherals • Meeting external timing constraints • Process scheduling and pre-emption • Using C++ thread classes • Real-time operating systems
Standard Libraries
Summary of the standard C and C++ libraries • Using container classes, algorithms and iterators from the standard libraries
C++ 2011
Brief History of C++ • Maintaining compatibility • Nested templates • Type inference • Range based for-loops • Lambdas • Null pointer • Explicit conversion operators • Overridden and final methods • Defaulted and deleted behavior • Enhanced enumerations • Compile-time assertions • Shared pointers • Better random numbers • Efficient arrays • Unordered sets & maps • Regular expressions • Asynchronous calls & futures • Mutex
Learn the principles of object-oriented design • Class relationships • The Unified Modelling Language • Class and object diagrams • Association • Composition • Dependency • Implementing class relationships in C++ • Initialization of class members
Inheritance
Derived classes • Inheritance • Protected members • Casting pointers • Order of initialization
Virtual Functions
Inheriting common behaviour • Overriding methods • Virtual functions • Polymorphism • Late binding • Virtual destructors • Abstract base classes and pure virtual functions
Multiple Inheritance
Single Inheritance • Multiple inheritance • Virtual multiple inheritance • Interfaces • Composition again
Day 4– Learn to make use of some standard libraries and to develop your own class templates
Strings and Streams
The string class • I/O streams • I/O of user-defined types • Manipulators • Buffering • Formatted and unformatted streams
Further C++ Features
Run-Time Type Identification • Type casts • User-defined conversions • Nested classes • Pointer-to-member
Templates
Function templates • Class templates • Template arguments • Template specialization • Building simple data structures using templated and untemplated classes
Day 5 – Embedded Programming and Standard Libraries
Exceptions
Error handling • Throwing and catching exceptions • Handlers • Standard exception classes• Preventing memory leakage during exceptions
Principles of Embedded Programming
Concurrency • Threads • Synchronisation • Memory maps • Communicating with peripherals • Meeting external timing constraints • Process scheduling and pre-emption • Using C++ thread classes • Real-time operating systems
Standard Libraries
Summary of the standard C and C++ libraries • Using container classes, algorithms and iterators from the standard libraries
C++ 2011
Brief History of C++ • Maintaining compatibility • Nested templates • Type inference • Range based for-loops • Lambdas • Null pointer • Explicit conversion operators • Overridden and final methods • Defaulted and deleted behavior • Enhanced enumerations • Compile-time assertions • Shared pointers • Better random numbers • Efficient arrays • Unordered sets & maps • Regular expressions • Asynchronous calls & futures • Mutex.