Global training solutions for engineers creating the world's electronics
Menu

C++ Self-Assessment Test

Do you know enough C to attend the Fundamentals of SystemC or the Fundamentals of SystemC Online course?

You need to be able to write C++ programs using const, namespaces, references, streaming I/O, ranged forloops, uniform initialization, templated classes, overloaded operators, lambdas, constructors, and destructors.

Ask yourself whether you could write a C++ program to do the following:

1. Create a template class for a 3-D coordinate parameterized on the underlying data type that allows you to create, add/subtract (operator+ & operator-, scale (operator*), compare ( operator== ), to_string() , and stream out ( operator<< ) points. The class should be named Coordinate and support the following syntax:

2. Implement the class and compile with no errors or warnings (use flags -pedantic -Wall -Wextra ).

3. Create a unit test.

4. Run the program above and obtain:

You will be expected to be able to write C++ programs such as this, without help from the instructor, when you arrive on the first day of Fundamentals of SystemC.

As well as knowing C++, delegates should have a basic understanding of embedded systems, microcontroller architecture, and how to read a datasheet. If you are still unsure whether you meet the pre-requisites, please contact Doulos to discuss.

Upcoming Live Webinars

Image 1

C/C++ Memory Management: Design and Debugging

Wednesday November 11 2026

1 hour session (All Time Zones)

This webinar explores best practices for avoiding memory issues in design and debugging memory usage issues in C and C++.

Register Now

Image 1

cocotb - An Introduction for Python Programmers

Friday November 13 2026

1 hour session (All Time Zones)

With many engineers having a working knowledge of Python, cocotb can prove a highly effective verification tool. This webinar will help you get started!

Register Now

Image 1

Designing with AMD Kria SOMs

Tuesday November 24 2026

1 hour session (All Time Zones)

This webinar will walk through the design process for using AMD Kria SOMs, including the use of Vivado and Vitis.

Register Now

Image 1

Understanding Random Stability in SystemVerilog and UVM

Tuesday December 01 2026

1 hour session (All Time Zones)

This webinar will explain random stability in SystemVerilog and in UVM, the Universal Verification Methodology.

Register Now

Image 1

Zephyr Insights: Scheduling and Threads

Friday December 04 2026

1 hour session (All Time Zones)

This webinar delves into the services offered by Zephyr to ensure real-time behaviour, with a primary focus on threads, priority management, and scheduling, highlighting similarities and differences to other RTOSs.

Register Now