Advanced C++ Training Course
C++ is a cross-platform object-oriented programming language designed for large systems and resource-constrained applications with clear structure, code reusability, flexibility, and efficiency.
This instructor-led, live training (online or onsite) is aimed at developers who wish to use advanced C++ programming techniques to develop complex, secure, and high-performance systems and applications.
By the end of this training, participants will be able to:
- Set up a development environment that includes all C++ libraries, packages and frameworks.
- Understand the features, components, and basic elements of C++.
- Create complex C++ applications using advanced programming techniques.
- Learn how to write readable, fast, and secure code in C++.
- Know the common security pitfalls in C++ language and how to mitigate them.
- Implement test strategies for code quality and security control.
- Use the diagnostics and debugging tools in C++ development.
Format of the Course
- Interactive lecture and discussion.
- Lots of exercises and practice.
- Hands-on implementation in a live-lab environment.
Course Customization Options
- To request a customized training for this course, please contact us to arrange.
Course Outline
Introduction
- What's new in C++?
- Overview of C++ features and elements
- Understanding object-oriented programming
- The basics of C++ programming
Getting Started
- Setting up the development environment
- Installing C++ IDE
- Standard libraries and components
Advanced Programming in C++
- Lambda expressions in C++
- Standard containers and algorithms
- Move semantics
- C++ coding style rules
- Pointer to implementation (Plmpl)
- Operator overloading
- Polymorphism in C++
- Variables, arrays, and conditionals
- References and pointers
- Exception handling
- Other modern functions and implementation
Security Programming
- C++ security features and best practices
- Modern memory management
- String handling techniques
- Working with User Account Control (UAC)
- Security vulnerabilities and mitigation options
Testing Strategies for C++
- Choosing a test framework
- Analysis and metrics
- Writing unit tests
- Integration and system level tests
- Testing legacy code
- Black-box testing
Debugging the Code
- Conditional and function breakpoints
- Multi-threaded debugging
- Performance and diagnostics tools
Summary and Next Steps
Requirements
- Basic C++ programming experience
Audience
- Developers
Open Training Courses require 5+ participants.
Advanced C++ Training Course - Booking
Advanced C++ Training Course - Enquiry
Testimonials (5)
The online-ness of it meant that we could save a lot of time. Much appreciated. Also, the fact that the trainer knew both c# and Cpp was a huge help since he could explain everything through knowledge we already possessed.
Gabor - Rheinmetall Electronics Hungary Kft
Course - Advanced C++
The pace was optimal, not too slow not too fast. The subjects we touched were very informal and interesting. I think I understood everything. We talked about what is the use case and why is that useful. The examples were small and concise was easy to understand. We could ask questions at every step and it was answered and explained fully and with great patience. We were also asked questions to make sure we understand the subject or have any questions. It was fun and entertaining although very informal and I think I learned a lot.
Gabor - Rheinmetall Electronics Hungary Kft
Course - Advanced C++
Lots of exercises and help. It was useful for the trainer to be able to use our individual project doucments to be able to help us fix our issue and complete the exercises. {Plenty of chance for asking questions too.
Matthew - Teledyne
Course - Advanced C++
I liked that we had exercises to do, the material was impressive and well structured and the trainer explained very well all the topics
Diana Toldas - Accenture Industrial Software Solutions S.A.
Course - Advanced C++
Enjoyed the flexibility and variety of topics, the combination of trainings and exercises meant that I could apply what I'd learnt straight away. I also enjoyed the projects on the last day to bring everything together.
Luca Ricagni - Rockwell Collins UK Limited
Course - Advanced C++
Upcoming Courses
Related Courses
C++ for Modeling Quantitative Finance
49 HoursDeep C++ training to cover quantitative methods modeling and introduce a huge project for the trainees to have real hands-on experience with C++ for Quants
C/C++ Secure Coding
21 HoursThis three day course covers the basics of securing the C/C++ code against the malicious users who may exploit many vulnerabilities in the code with memory management and input handling, the course cover the principals of writing secure code.
C++ for Embedded Systems
21 HoursIs C++ suitable for embedded systems such as microcontrollers and real-time-operating-systems?
Should object-oriented-programming be used in microcontrollers?
Is C++ too far removed from the hardware to be efficient?
This instructor-led, live training addresses these questions and demonstrates through discussion and practice how C++ can be used to develop embedded systems with code that is accurate, readable, and efficient. Participants put theory into practice through the creation of a sample embedded application in C++.
By the end of this training, participants will be able to:
- Understand the principles of object-oriented modelling, embedded software programming and real-time programming
- Produce code for embedded systems that is small, fast and safe
- Avoid code bloat from templates, exceptions, and other language features
- Understand the issues related to using C++ in safety-critical and real-time systems
- Debug a C++ program on a target device
Audience
- Developers
- Designers
Format of the course
- Part lecture, part discussion, exercises and heavy hands-on practice
C++ 11 Programming
14 HoursThis is a 2 day course aimed at C++ programmers who are interested in applying the new C++11 standard in their industry. It is particularly useful for financial applications developers covering all new features with coding examples to be executed within the lab
C++, QT, ZeroMQ and Protocol Buffers
35 HoursThis instructor-led, live training in Brazil (online or onsite) provides introductory coverage of C++, the Qt GUI framework, and various communication technologies such as ZeroMQ and Protocol Buffers that can be used for writing distributed applications.
By the end of this training, participants will have the necessary knowledge and practice to write and compile an application using C++, Qt and gcc on Linux Centos 6/7. Participants will also integrate asynchronous messaging capabilities using Zero MQ and Protocol Buffers.
Using C++ in Embedded Systems - Applying C++11/C++14
21 HoursThis training intends to introduce C++ as the common extension of C when applying object-oriented embedded system development. Since C++ encloses C, this training takes us from C to C++ in a natural way, and looks under the hood of how C++ is implemented. This is especially valuable to comprehend when applying C++ in an embedded resource limited environment. The C++ standard has recently been undergoing a major revision, a.k.a. as C++11, and a new one is on its way, C++14. This course addresses subjects brought in with these revisions that are especially useful like high performance memory management, concurrency making use of a multicore environment, and bare-metal close to the hardware programming.
GOAL/BENEFITS
The major objective of this class is that you shall be able to use C++ in a “correct way”.
- Introduce C++ as an object oriented language alternative in an embedded system context
- Show the similarities ‑ and differences ‑ with the C language
- Comprehend different memory management strategies – especially the move semantics introduced with C++11
- Look under the hood and understand what different paradigms in C++ leads to in machine code
- Use templates to achieve type safe high order abstractions for bare-metal close to the hardware programming – memory mapped I/O as well as interrupts – especially the variadic templates introduced with C++11
- Provide some useful design patterns especially applicable in an embedded context
- A few exercises in order to practice some concepts
AUDIENCE/PARTICIPANTS
This training is aimed C++- programmers who intend to start using C++ in an embedded system context.
PREVIOUS KNOWLEDGE
The course requires basic knowledge in C++ programming, corresponding to our trainings ”C++ – Level 1” and ”C++ Level 2 – Introducing C++11”.
PRACTICAL EXERCISES
During the training you will practice the presented concepts in a number of exercises. We will use the open and free integrated development environment from Eclipse
Functional Programming with C++
14 HoursThis instructor-led, live training in Brazil (online or onsite) is aimed at web developers who wish to functional program with C++
By the end of this training, participants will be able to:
- Use functional programming solutions to improve the performance of web applications.
- Avoid data mutation and side effects with functional programming.
- Create web applications in a functional programming style.
HMI Development for Automotive Infotainment Systems
14 HoursThis is a specialized HMI Development course designed for automotive professionals who are involved in the development of advanced automotive infotainment system
Advanced C++ Software Design
35 HoursThis is an advanced C++ training course focusing on object-oriented (OO) software development and design with the C++ programming language.
Object Oriented Programming with C++
7 HoursIn this course, participants will learn C++ concepts and programming skills.
Programming in C++
35 HoursThe course presents a comprehensive object-oriented language C++ and its use of simple examples. These are the standard mechanisms and library
Qt Programming
21 HoursThis instructor-led, live training in Brazil provides in-depth coverage of Qt and its modules.
By the end of this training, participants will have the necessary knowledge and practice to develop their own C++ application using Qt.
Unreal Engine 4
21 HoursThis instructor-led, live training in Brazil covers the fundamentals of game development with Unreal Engine 4 while giving participants the chance to create their own sample game.