Global training solutions for engineers creating the world's electronics

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

Modern C++ Casts: How and When to Use Them

Wednesday February 12 2025

1 hour session (All Time Zones)

The casting data conversion process in C++ is often misused. This webinar highlights common errors and how and when to use casts effectively in your projects.

Register Now

Image 1

What Can Formal Do for Me?

Friday February 14 2025

1 hour session (All Time Zones)

This webinar will look at the ways formal helps your design verification process, including complexity analysis, bounded reachability analysis, overconstraining the design, setting cut points, and creating abstractions.

Register Now

Image 1

Extending a Yocto BSP using Layers

Wednesday February 26 2025

1 hour session (All Time Zones)

We will investigate how the Yocto build environment provides the initial components to successfully boot a Linux system and how it can be modified to manage challenging requirements in your projects.

Register Now

Image 1

Rapid Creation of Edge AI Solutions on an FPGA

Friday February 28 2025

1 hour session (All Time Zones)

This webinar will explore ideas on identifying and deploying trained AI models on FPGAs and look at contemporary software tools and APIs which help in putting together an FPGA-based Edge AI solution.

Register Now

Image 1

Accelerating Formal Verification Using Non-Determinism

Wednesday March 26 2025

1 hour session (All Time Zones)

This webinar will explain what non-determinism is, how it's used, and show lots of examples so you can take advantage of non-determinism to accelerate the verification of your designs.

Register Now