Get in Touch

Course Outline

  • Understanding Embedded Systems
    • Basic Definition
    • Key Historical Milestones
    • Core Characteristics
    • Rationale for Using C++
  • Comparison with C
    • C as a Near-Subset of C++
    • Performance Considerations
    • Additional “Free” Functionality in C++
    • Reasons Against Using C++
  • Classes
    • Member Variables
      • Instance Variables
      • Class Variables
    • Member Functions
      • Instance Functions
      • Class Functions
    • Implicit Methods
      • Constructors
        • Initialization
        • Delegation
      • Destructors
      • Copy Assignment Operators
    • Move Semantics – Preventing Unnecessary Deep Copies
    • Usage of Structs in C++
    • Packages and Namespaces
  • Inheritance
    • Conceptual Introduction
    • Implementation Mechanisms
    • Performance Impact
    • Multiple Inheritance
    • Virtual Inheritance
  • Polymorphism
    • Conceptual Introduction
    • Virtual Functions
    • Virtual Destructors
    • Implementation Details
    • Runtime Type Information (RTTI)
    • Performance Implications
  • Templates
    • Conceptual Introduction
    • Function Templates
    • Class Templates
      • Variadic Templates
    • Managing Code Bloat
    • Implementation Strategies
    • Template Meta-Programming
    • Templates vs. Inheritance
  • Error Handling
    • Exception Handling Mechanisms
    • Performance Concerns
    • Implementation Strategies
  • Inline Code
    • Appropriate Use Cases
    • Optimization Strategies
  • System Start-up
    • System Boot Process
    • C Language Components
    • C++ Language Components
  • Standard Library
    • Standard Template Library (STL)
    • iostream Library
    • Key C++11 Extensions to STL:
      • Move Semantics
      • Variadic Templates
      • Concurrency Features
  • Memory Management
    • The C++ Memory Model
      • stdint Types
      • Atomic Types and Operations
    • Management Strategies
    • Variable Allocation
    • Placement New
    • User-Defined Memory Management
  • C and C++ Interoperability
    • Name Mangling
    • Static Initialization
    • Dynamic Memory Handling
    • Struct Contents
      • POD – Plain Old Data Types
  • Design Patterns
    • RAII – Resource Acquisition Is Initialization
    • Memory-Mapped I/O
    • Interrupt Handling
    • Initialization of Static Objects

Requirements

There are no specific additional requirements necessary to participate in this course.

 21 Hours

Number of participants


Price per participant

Testimonials (3)

Upcoming Courses

Related Categories