Course Outline
- What is an Embedded System?
- Simple Definition
- Key Milestones for Government
- Characteristics Relevant to Public Sector Operations
- Why Use C++ in Government Projects?
- Comparison with C
- C: A Subset of C++ – Almost
- Performance Considerations for Government Systems
- Added Functionality without Additional Cost
- Why Not Use C++ in Government Projects?
- Classes
- Member Variables
- Instance Variables for Government Applications
- Class Variables for Shared Resources
- Member Functions
- Instance Functions for Individual Operations
- Class Functions for Common Tasks
- Implicit Methods
- Constructor
- Initialization of Objects in Government Systems
- Delegation for Efficient Initialization
- Destructor for Resource Cleanup
- Copy Assignment Operator for Data Management
- Constructor
- Move Semantics – Avoiding Unnecessary Deep Copies in Government Applications
- struct in C++ for Structured Data Representation
- Packages/Namespace for Organized Code in Government Projects
- Member Variables
- Inheritance
- Introduction to Inheritance for Government Systems
- Realization of Complex Hierarchies
- Performance Implications for Government Applications
- Multiple Inheritance for Enhanced Functionality
- Virtual Inheritance for Efficient Memory Use
- Polymorphism
- Introduction to Polymorphism in Government Systems
- Virtual Functions for Dynamic Behavior
- Virtual Destructors for Proper Resource Management
- Implementation Strategies for Government Projects
- Runtime Type Information (RTTI) for Enhanced Flexibility
- Performance Considerations for Government Applications
- Templates
- Introduction to Templates in Government Systems
- Function Templates for Generic Functions
- Class Templates for Reusable Data Structures
- Variadic Templates for Flexible Arguments
- Code Bloat and Optimization Strategies
- Implementation Techniques for Government Projects
- Template Meta Programming for Advanced Compile-Time Operations
- Comparing Template versus Inheritance in Government Applications
- Error Handling
- Exception Handling for Robust Government Systems
- Performance Issues and Mitigation Strategies
- Implementation Best Practices for Government Projects
- Inline Code
- When to Use Inline Code in Government Applications?
- Strategies for Effective Inline Code Usage
- Start-up
- System Start-up for Government Systems
- The C Part of the Initialization Process
- The C++ Part of the Initialization Process
- Standard Library
- Standard Template Library (STL) for Efficient Data Structures
- iostream Library for Input/Output Operations
- Major Extensions to STL Due to C++11:
- Move Semantics for Improved Performance
- Variadic Templates for Flexible Arguments
- Concurrency Support for Parallel Processing
- Memory Management
- The C++ Memory Model
- The stdint-types for Standard Integer Types
- Atomic Types and Their Operations for Thread Safety
- Strategies for Efficient Memory Management in Government Systems
- Variables and Their Lifecycle in Government Applications
- Placement new for Custom Memory Allocation
- User-Defined Memory Management Techniques
- The C++ Memory Model
- Interoperation between C and C++
- Name Mangling for Function Overloading
- Static Initialization for Early Setup in Government Systems
- Dynamic Memory Management for Flexibility
- struct Contents
- POD – Plain Old Data Type for Simple Structures
- Design Patterns
- RAII – Resource Acquisition Is Initialization for Automatic Management
- Memory-mapped I/O for Efficient Data Access in Government Systems
- Interrupt Handling for Real-Time Operations
- Initialization of Static Objects for Early Configuration
Requirements
Testimonials (3)
Detailed explanation, re-iteration of points in a quite subtle way that really drove the knowledge home very well. Rod's willingness to double-check the odd obscure question that we rasied, to be sure that his answers were 100% right. Also, his interest in discussing the pros & cons of alternate coding styles so that we learnt not only how to use C++ in our intended way, but why it should be done that way.
Nick Dillon - cellxica Ltd
Course - Using C++ in Embedded Systems - Applying C++11/C++14
I enjoyed the time allocated for us to solve the exercices. This was very useful as it allowed us to spend some time thinking about our solutions and implementing them.
Valeriu - Siemens
Course - Using C++ in Embedded Systems - Applying C++11/C++14
The details on how compiler behaves depending on to the syntax usage. The "Quiz" sections are very stimulating