Constructor (1. Default, 2. copy, 3. move), Virtual Constructor
Assignment Operator(4. Copy, 5. move assigment operator)
6. Destructor: Virtual Destructor
Characteristics of OOPS
1. Polymorphism
|- Static(CompileTime)
|- Templates(Class, Function, Variadic Templates, Template Parameter Pack)
|- Operator Overloading
|- Dynamic(Runtime): Virtual Functions
2. Association: Composition , Aggregation
3. Generalization = Inheritance
4. Abstraction
5. Classes, Objects, Data hiding
6. Encapsulation
Exception Handling
Keywords: mutable
Versions
C++11: attributes(carries_dependency, depreacated, fallthrough, likely, unlikely, maybe_unused, nodiscard, noreturn, no_unique_address, optimize_for_synchronized), Constexpr and macros, decltype / decltype(auto), Function Pointer, Lambda Expression, lvalue & lvalue reference, rvalue & rvalue reference Copy, Move constructor , noexcept, remove_pointer_t, Pointers(Raw & Smart). unique_ptr, shared_ptr, Type Triats
C++14
C++17: Fold Expression, string_view
C++20: __has_cpp_attribute, 3 Way Comparator, Abbreviated Function Template, Aggregate initialization, Concept & Contraint, Concept & Contraint
STL: Associative Containers(Unsorted(hashmap, Hashset), Sorted(map, set)), Container Adoptors(Stack, Queue, priority_queue), Sequence Containers(vector, deque), Algorithms, Iterators Functors
String
Terms (Design Patterns): RAII, RTTI