The competency area includes an understanding of pointers, Object-Oriented Programming, working with namespaces, storage classes, templates, enumerations, and writing a basic OOP program, among others.
- Pointers - A pointer is a variable where we can store the memory address of a value. This competency includes an understanding of concepts such as call by value, call by reference, referencing and dereferencing of pointers, accessing array values using pointer arithmetic, etc.
- Object-Oriented Programming - Object Oriented Programming is a programming paradigm that focuses on organizing objects and data, rather than functions and logic. The key concepts in OOP are Inheritance, Encapsulation, Polymorphism, and Abstraction. An understanding of OOP and how C++ supports each key concept in OOP, i.e, Inheritance (types, extends keyword), polymorphism (static and dynamic, (pure) virtual functions), encapsulation (classes, access specifiers), etc. forms the basics of OOP competency in C++.
- Working with Namespace - Namespaces helps one define a declarative scope for identifiers.
- Variable scope and storage classes - Variable scope refers to the blocks or regions of the code where a declared variable can be accessed. Storage classes are used to define the features of a variable such as it’s scope, lifetime, and visibility. Built-in storage classes in C++ are global, local, register, static, extern. This competency includes the ability to infer the scope of variables given an excerpt from the C++ code.
- Templates - Template is a way for the programmer to define a function or a class with data type as a parameter, thereby making the block of code reusable across different data types.
- Enum - Enum is a data type that enables a variable to be a set of predefined constants. An enum variable can only have a value from this set. It’s commonly used to make programs more readable.
- Writing an OOP program - Understanding of core concepts in object-oriented programming to design a terminal-based game, car parking system, library management system, shopping management system, etc.