💡 TL;DR:Start with C++ fundamentals, then follow focused paths through types, object lifetime, polymorphism and common pitfalls, with links to runnable examples.
Last updated:2026-10-14
Fundamentals & Beyond · Article Index¶
This section is a guided route through the language rather than a list to read from top to bottom. Pick the path that matches the problem you are solving.
A practical reading path¶
- Understand values and types. Start with const and qualifiers, pointers versus references, and struct versus class. These choices affect the signatures you write every day.
- Control conversions and deduction. Read explicit conversions, decltype, and using declarations before tackling more complex templates. For C++23's explicit object parameter, continue with deducing this after those basics.
- Understand runtime behavior. Continue with virtual functions, vtable mechanics, and smart pointers as parameters. Check the code examples before relying on a rule of thumb.
- Debug the preprocessor. Use the macro and conditional compilation guide when
#,##, or conditional definitions produce surprising results.
All articles¶
- C++ Pure Virtual Functions and Abstract Classes
- C++ assert
- C++ Bit Fields
- Implementing C++ Polymorphism in C
- C++ const Constants and Qualifiers
- The Complete C++ const Family
- C++ Dereference Operator *
- C++ Initialization and Assignment
- Ways to Return Multiple Values in C++
- C++ mutable Keyword
- C++ restrict and Compiler Optimization
- C++ string ABI Compatibility
- C++ Template Disambiguation
- C++ vs Rust Destructor Comparison
- C++ decltype Type Deduction
- C++ enum Enumerated Types
- C++ explicit: constructors and conversion operators
- C++ extern Linkage Specification
- C++ friend
- C++ inline Functions
- C++ Macros and Conditional Compilation
- C++ Member Initializer List Pitfalls
- C++ Namespaces
- C++ Pointers vs References
- The C++ sizeof Operator
- C++ Smart Pointers as Function Parameters
- C++ static Members and Lifetime
- C++ std::function in Depth
- C++ ref and reference_wrapper
- C++ struct vs class: default access and inheritance
- struct in C and C++
- C++ Tail Recursion
- C++ this Pointer
- C++ union
- C++ using Declarations and Aliases
- C++ vector resize vs reserve
- C++ Virtual Functions
- C++ volatile Keyword
- C++ Virtual Pointer and vtable Mechanism