C++
Concepts
- Compilation
- C++ Storage Classes: Define the life-cycle and visibility of variables/functions within the program.
- C++ Storage Layout: Describes memory allocation for programs, including heap, stack, BSS, data segment, and text segment.
- Smart Pointers: Facilitate automatic memory management by automating object destruction and managing resource deallocation.
- Templates: Support generic programming by allowing functions and classes to operate with generic types.
- Exceptions: Provide a structured way to handle runtime errors and exceptional conditions.
- Name Mangling and Externs: C++ feature to handle symbol names in compiled code, with
extern "C"
used to prevent name mangling in C++ when calling C functions.
- Basic O.O.P Features
- Virtual Functions and Polymorphism: Enable runtime method binding and polymorphism, distinguishing between static (compile-time) and dynamic (runtime) polymorphism.
- Operator Overloading: Allows custom implementation of operators for class objects.
- Friend Functions and Classes: Allows access to private and protected members of a class from outside the class scope.
- Static Functions and Members: Associated with the class rather than any class instance, allowing access without an object.
- Copy Constructors, Shallow Copy, and Deep Copy: Mechanisms for initializing an object using another object of the same class.
- Namespaces: Prevent naming conflicts by isolating the names of variables, functions, etc., in different logical scopes.
Additional Topics
Design Patterns