The competency area includes an understanding of streams, exception handling, memory layout, working with DMA, and STLs, among others.
- Streams - An understanding of how to define and use custom streams (such as using a stream to convert a number into a string), is included is in this competency.
- Exception handling - Ability to perform Exception handling. C++ provides the try and catch construct for exception handling which is used in conjunction with the throw keyword to raise exceptions.
- Memory Layout - Ability to understand and use the memory layout contains 5 main components: Stack, Heap, Data Segment (uninitialized and initialized), and Code Segment.
- Dynamic Memory allocation (DMA) - Understanding of Dynamic Memory Allocation, and use of malloc(), ralloc(), calloc() and free() functions, and new and delete keywords.
- Standard Template Library (STL) - Proficiency in using the various templates in the Standard Template Library.
- C++ Preprocessor - Ability to define simple macros, such as writing a macro to swap two variables or finding the square of a number.
- Operator overloading - Understanding Operator overloading, a type of static polymorphism available in C++ where a programmer can redefine the behavior of an operator for given object arguments.
- Advanced programs - Ability to write advanced programs such as counting the number of words in different files using multiple threads, building a priority queue system, etc.