Get in Touch
 Duration 21 hours

Course Outline

  • Understanding Embedded Systems
    • Basic Definition
    • Key Milestones
    • Defining Characteristics
    • The Rationale for Using C++
  • C and C++ Comparison
    • C as a Subset of C++ – Nuances Explained
    • Performance Considerations
    • Additional “Free” Functionality in C++
    • Potential Limitations of Using C++
  • Classes in C++
    • Member Variables
      • Instance Variables
      • Class Variables
    • Member Functions
      • Instance Functions
      • Class Functions
    • Implicit Methods
      • Constructors
        • Initialisation
        • Delegation
      • Destructors
      • Copy Assignment Operator
    • Move Semantics – Avoiding Unnecessary Deep Copies
    • Structs in C++
    • Namespaces and Packaging
  • Inheritance
    • Introduction to Inheritance
    • Implementation Details
    • Performance Implications
    • Multiple Inheritance
    • Virtual Inheritance
  • Polymorphism
    • Overview
    • Virtual Functions
    • Virtual Destructors
    • Implementation Mechanics
    • Runtime Type Information (RTTI)
    • Performance Analysis
  • Templates
    • Introduction to Templates
    • Function Templates
    • Class Templates
      • Variadic Templates
    • Managing Code Bloat
    • Implementation Strategies
    • Template Meta-Programming
    • Templates vs. Inheritance
  • Error Handling
    • Exception Handling
    • Performance Considerations
    • Implementation Details
  • Inline Code
    • Appropriate Use Cases
    • Optimisation Strategies
  • System Start-up
    • System Initialisation Process
    • The C Component
    • The C++ Component
  • Standard Library
    • Standard Template Library (STL)
    • iostream Library
    • Major STL Extensions in C++11:
      • Move Semantics
      • Variadic Templates
      • Concurrency
  • Memory Management
    • The C++ Memory Model
      • Stdint Types
      • Atomic Types and Operations
    • Management Strategies
    • Variable Scope and Lifetime
    • Placement New
    • User-Defined Memory Management
  • C and C++ Interoperability
    • Name Mangling
    • Static Initialisation
    • Dynamic Memory Allocation
    • Struct Contents
      • POD – Plain Old Data Types
  • Design Patterns
    • RAII – Resource Acquisition Is Initialisation
    • Memory-Mapped I/O
    • Interrupt Handling
    • Initialisation of Static Objects

Requirements

No specific prerequisites are required to attend this course.

Number of participants


Price per participant

Testimonials (3)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories