C++

C++

Advanced

C++ is general-purpose programming, known to have high performance and great efficiency. It is used to implement some of the most important software in the world, including the V8 Javascript engine (Google Chrome).

The competency area includes an understanding of streams, exception handling, memory layout, working with DMA, and STLs, among others. 

Key Competencies: 

  1. 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.
  2. 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.
  3. Memory Layout - Ability to understand and use the memory layout contains 5 main components: Stack, Heap, Data Segment (uninitialized and initialized), and Code Segment. 
  4. Dynamic Memory allocation (DMA) - Understanding of Dynamic Memory Allocation, and use of malloc(), ralloc(), calloc() and free() functions, and new and delete keywords.
  5. Standard Template Library (STL) - Proficiency in using the various templates in the Standard Template Library. 
  6. C++ Preprocessor - Ability to define simple macros, such as writing a macro to swap two variables or finding the square of a number.
  7. 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.
  8. 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.