Learn optimized C++ coding and debugging for automation, gaming, and embedded systems.
Skills you will gain
- Object-Oriented Programming Foundations: Build modular, maintainable applications using modern C++ OOP principles.
- Core C++ Syntax & Structures: Master essential constructs like functions, loops, arrays, strings, and pointers.
- Memory Management Techniques: Apply smart and unique pointers for efficient and safe resource handling.
- Design Pattern Implementation: Use common patterns like Singleton to structure scalable, reusable code.
- Modern Library Best Practices: Leverage advanced tools like C++ GSL and Google Abseil for clean, optimized development.
Course Description
This course covers object-oriented programming using modern C++. Because most automation, embedded applications, gaming, and many large data processing applications are written in C++, it is essential that software developers understand and master it. Hardware engineers are increasingly using C++ and OOP in system verification tasks and as of the current decade, there has been a noticeable shift from C to C++ on microcontroller systems.
This course offers an excellent foundation in developing optimized modern C++ applications. The participants will learn to write faster and modular code, and the debugging techniques, for real-world applications. There will be assignments and exercises to accompany the lectures.
Topics
- Principles of object-oriented analysis and design
- Stream classes for input/output and to read/write files
- User defined data types using structures and classes
- Declarations of identifiers, pointers, function pointers and references
- Reuse code and extend existing data types through inheritance
- Memory management and dynamic array declarations
- Create class/function templates and understand STL
- Use static member variables and static member functions
- Declare friend functions and friend classes
- Function overloading and operator overloading
- Polymorphism concept using virtual function
- Understand exceptions handling techniques using try/catch syntax
Prerequisites / Skills Needed
Experience with a high level programming language such as C/Java/Python.
This course applies to these programs: