Migrating to C++

Apply C++ to embedded systems development. Master classes, inheritance, polymorphism, UML class diagrams, and templates through hands-on labs.

Migrating to C++

Migrating to C++
Available On-Demand: Enroll anytime and learn at your own pace

Course Overview

Object-oriented programming concepts, such as inheritance, polymorphism, and encapsulation, can be challenging for C programmers who are used to a more procedural programming style. Therefore, this course is designed specifically for embedded software developers who already have experience with the C programming language and want to learn C++.

The focus of the course will be on applying C++ to the development of embedded systems. We will cover topics such as basic classes, objects, constructors, inheritance, and polymorphism. In addition, attendees will learn how to design object-based applications using UML class diagrams and relate them to C++ code implementation.

Essential Topics Covered

  • Introduction to C++ for Embedded Software Development
  • Basics of Classes and Objects, Constructors and Destructors
  • Inheritance and Polymorphism
  • UML Class Diagrams for Object-Oriented Design
  • Templates and Static Polymorphism

Ready to transition from C to C++ for your embedded projects? This hands-on workshop will get you there.

Enroll Now — $295

Workshop Curriculum

The workshop includes 5 hands-on sessions. Click each session to see full details.

Session 1: Introduction to C++ for Embedded Software Development

Topics Covered

  • Modern embedded system needs
  • Programming language options
  • C++ advantages/disadvantages
  • Modern build systems
  • Compilation processes
  • Microcontroller boot processes
  • C++ coding standards
  • Options for transitioning to C++
  • Best practices
Lab: C++ toolchains and builds using Microsoft Visual Studio Code and Docker
Session 2: Basics of Classes and Objects, Constructors and Destructors

Topics Covered

  • Object-oriented programming concepts
  • UML class diagram representation
  • Class/object creation in C++
  • Differences between classes and objects
  • Constructors/destructors
  • Access control (public, protected, private)
  • Best practices
Lab: Writing a blinky LED application using the Session 1 toolchain to develop an LED class
Session 3: Inheritance and Polymorphism

Topics Covered

  • Class inheritance
  • Modeling relationships
  • Virtual functions
  • Abstract classes
  • Interfaces
  • Hardware abstraction layers
  • SOLID principles
  • Best practices
Lab: Enhancing a blinky LED application with polymorphism across simulated and hardware peripherals with dependency injection
Session 4: UML Class Diagrams for Object-Oriented Design

Topics Covered

  • UML class diagram overview
  • Understanding diagrams
  • Translating to C++ code
  • Class associations/relationships
  • Composition
  • Aggregation
  • Best practices
Lab: Designing and implementing class diagrams for embedded applications
Session 5: Templates and Static Polymorphism

Topics Covered

  • Template introduction
  • Template class design
  • Type checking
  • UML templates
  • Static versus dynamic polymorphism
  • Best practices

Make the leap from C to C++ with confidence. Enroll today and modernize your embedded development skills.

Enroll Now — $295
$295 One-time purchase • Lifetime access Enroll Now
FormatLive workshop + on-demand recording
Sessions5 sessions with hands-on labs
Duration~10 hours (90 min per session)
IncludesSlides, lab exercises, recordings

Get access to all courses with the Embedded Software Academy

Every workshop included for just $295/yr

Learn More

Ready to get started?

Enroll Now — $295

Or get access to all courses with the Embedded Software Academy — $295/yr

Need Custom or On-Site Training?

Fill out the form below and we'll contact you about your requirements.