Search this site
Embedded Files
Skip to main content
Skip to navigation
Advanced Programming Notes
Home
Best Practices
Cool Lambdas
Links
!Dino-logo Designs
File Handling
Errors
Buffering
Character Input
OOP
Nested Classes
Function Objects (Functor)
Inheritance/generalization
The UML
A Typical Scenario
Instantiation
Restrictions
Access Specifiers
Constructors
Designing Classes
Static & This
Constructors / Destructors
Rule of 3/5/0/6
Overloading
Copying and moving
Runtime type ID
Casting: Static vs Dynamic
Vtable Example
RTTI: typeid operator
More pointer problems
Basic Rules of dynamic_cast
Why use RTTI
Design Patterns
Polymorphism
Hidden?
Which class?
Override Keyword
An example
Stopping inheritance
The diamond problem
Abstract Classes
Virtual Destructors
Abstract classes in UML diagrams
Polymorphism and specialization
Notes on multiple inheritance
Generic Programming
Class Templating
Template Compilation
Variadic Template Function
Typeid on template classes
Iterators
STL
Performance vs memory size
When should use
When should NOT use
Containers
STL: Iterators
STL: Algorithms
Sorting
Function Objects
Adaptors
More on vector<T>
Allocators
C++14 and Up
C++14
C++17 & 20
Operator Overloads
Adding Different Types
More on Friends
Friends with Private Destructor
Friends with multiple classes
Streams: i/o
Overloaded chaining or stacking
Functor: AKA Function Object
Output Chaining
Dynamics
Stack of Heap
New and Delete
A simple memory leak
Problems
Using namespace std;
Aliasing Templates
Bit Field Object
Pointers
Arrays
Randoms
Enums
Stream Manipulators
Cohesion
Coupling
Smart Pointers
Wrappers
RAII
Advanced Programming Notes
Curiously recurring template pattern
Google Sites
Report abuse
Page details
Page updated
Google Sites
Report abuse