|  | Internal Links | Dofollow | 
| Main Page | Internal Links | Dofollow | 
| Site Index | Internal Links | Dofollow | 
| Leave feedback | Internal Links | Dofollow | 
| About / Contact | Internal Links | Dofollow | 
| Support LearnCpp | Internal Links | Dofollow | 
| site index | Internal Links | Dofollow | 
| Introduction to these tutorials | Internal Links | Dofollow | 
| Introduction to programming languages | Internal Links | Dofollow | 
| Introduction to C/C++ | Internal Links | Dofollow | 
| Introduction to C++ development | Internal Links | Dofollow | 
| Introduction to the compiler, linker, and libraries | Internal Links | Dofollow | 
| Installing an Integrated Development Environment (IDE) | Internal Links | Dofollow | 
| Compiling your first program | Internal Links | Dofollow | 
| A few common C++ problems | Internal Links | Dofollow | 
| Configuring your compiler: Build configurations | Internal Links | Dofollow | 
| Configuring your compiler: Compiler extensions | Internal Links | Dofollow | 
| Configuring your compiler: Warning and error levels | Internal Links | Dofollow | 
| Configuring your compiler: Choosing a language standard | Internal Links | Dofollow | 
| Statements and the structure of a program | Internal Links | Dofollow | 
| Comments | Internal Links | Dofollow | 
| Introduction to objects and variables | Internal Links | Dofollow | 
| Variable assignment and initialization | Internal Links | Dofollow | 
| Introduction to iostream: cout, cin, and endl | Internal Links | Dofollow | 
| Uninitialized variables and undefined behavior | Internal Links | Dofollow | 
| Keywords and naming identifiers | Internal Links | Dofollow | 
| Whitespace and basic formatting | Internal Links | Dofollow | 
| Introduction to literals and operators | Internal Links | Dofollow | 
| Introduction to expressions | Internal Links | Dofollow | 
| Developing your first program | Internal Links | Dofollow | 
| Chapter 1 summary and quiz | Internal Links | Dofollow | 
| Introduction to functions | Internal Links | Dofollow | 
| Function return values | Internal Links | Dofollow | 
| Introduction to function parameters and arguments | Internal Links | Dofollow | 
| Introduction to local scope | Internal Links | Dofollow | 
| Why functions are useful, and how to use them effectively | Internal Links | Dofollow | 
| Forward declarations and definitions | Internal Links | Dofollow | 
| Programs with multiple code files | Internal Links | Dofollow | 
| Naming collisions and an introduction to namespaces | Internal Links | Dofollow | 
| Introduction to the preprocessor | Internal Links | Dofollow | 
| Header files | Internal Links | Dofollow | 
| Header guards | Internal Links | Dofollow | 
| How to design your first programs | Internal Links | Dofollow | 
| Chapter 2 summary and quiz | Internal Links | Dofollow | 
| Syntax and semantic errors | Internal Links | Dofollow | 
| The debugging process | Internal Links | Dofollow | 
| A strategy for debugging | Internal Links | Dofollow | 
| Basic debugging tactics | Internal Links | Dofollow | 
| More debugging tactics | Internal Links | Dofollow | 
| Using an integrated debugger: Stepping | Internal Links | Dofollow | 
| Using an integrated debugger: Running and breakpoints | Internal Links | Dofollow | 
| Using an integrated debugger: Watching variables | Internal Links | Dofollow | 
| Using an integrated debugger: The call stack | Internal Links | Dofollow | 
| Finding issues before they become problems | Internal Links | Dofollow | 
| Chapter 3 summary and quiz | Internal Links | Dofollow | 
| Introduction to fundamental data types | Internal Links | Dofollow | 
| Void | Internal Links | Dofollow | 
| Object sizes and the sizeof operator | Internal Links | Dofollow | 
| Signed integers | Internal Links | Dofollow | 
| Unsigned integers, and why to avoid them | Internal Links | Dofollow | 
| Fixed-width integers and size_t | Internal Links | Dofollow | 
| Introduction to scientific notation | Internal Links | Dofollow | 
| Floating point numbers | Internal Links | Dofollow | 
| Boolean values | Internal Links | Dofollow | 
| Introduction to if statements | Internal Links | Dofollow | 
| Chars | Internal Links | Dofollow | 
| An introduction to std::string | Internal Links | Dofollow | 
| Literals | Internal Links | Dofollow | 
| Const, constexpr, and symbolic constants | Internal Links | Dofollow | 
| Chapter 4 summary and quiz | Internal Links | Dofollow | 
| Operator precedence and associativity | Internal Links | Dofollow | 
| Arithmetic operators | Internal Links | Dofollow | 
| Modulus and Exponentiation | Internal Links | Dofollow | 
| Increment/decrement operators, and side effects | Internal Links | Dofollow | 
| Comma and conditional operators | Internal Links | Dofollow | 
| Relational operators and floating point comparisons | Internal Links | Dofollow | 
| Logical operators | Internal Links | Dofollow | 
| Chapter 5 summary and quiz | Internal Links | Dofollow | 
| Bit flags and bit manipulation via std::bitset | Internal Links | Dofollow | 
| Bitwise operators | Internal Links | Dofollow | 
| Bit manipulation with bitwise operators and bit masks | Internal Links | Dofollow | 
| Converting between binary and decimal | Internal Links | Dofollow | 
| Compound statements (blocks) | Internal Links | Dofollow | 
| User-defined namespaces and the scope resolution operator | Internal Links | Dofollow | 
| Local variables | Internal Links | Dofollow | 
| Introduction to global variables | Internal Links | Dofollow | 
| Variable shadowing (name hiding) | Internal Links | Dofollow | 
| Internal linkage | Internal Links | Dofollow | 
| External linkage | Internal Links | Dofollow | 
| Why (non-const) global variables are evil | Internal Links | Dofollow | 
| Sharing global constants across multiple files (using inline variables) | Internal Links | Dofollow | 
| Static local variables | Internal Links | Dofollow | 
| Scope, duration, and linkage summary | Internal Links | Dofollow | 
| Using declarations and using directives | Internal Links | Dofollow | 
| Unnamed and inline namespaces | Internal Links | Dofollow | 
| Chapter 6 summary and quiz | Internal Links | Dofollow | 
| Control flow introduction | Internal Links | Dofollow | 
| If statements and blocks | Internal Links | Dofollow | 
| Common if statement problems | Internal Links | Dofollow | 
| Switch statement basics | Internal Links | Dofollow | 
| Switch fallthrough and scoping | Internal Links | Dofollow | 
| Goto statements | Internal Links | Dofollow | 
| Intro to loops and while statements | Internal Links | Dofollow | 
| Do while statements | Internal Links | Dofollow | 
| For statements | Internal Links | Dofollow | 
| Break and continue | Internal Links | Dofollow | 
| Halts (exiting your program early) | Internal Links | Dofollow | 
| Introduction to testing your code | Internal Links | Dofollow | 
| Code coverage | Internal Links | Dofollow | 
| Common semantic errors in C++ | Internal Links | Dofollow | 
| Detecting and handling errors | Internal Links | Dofollow | 
| std::cin and handling invalid input | Internal Links | Dofollow | 
| Assert and static_assert | Internal Links | Dofollow | 
| Chapter 7 summary and quiz | Internal Links | Dofollow | 
| Implicit type conversion (coercion) | Internal Links | Dofollow | 
| Floating-point and integral promotion | Internal Links | Dofollow | 
| Numeric conversions | Internal Links | Dofollow | 
| Arithmetic conversions | Internal Links | Dofollow | 
| Explicit type conversion (casting) and static_cast | Internal Links | Dofollow | 
| Typedefs and type aliases | Internal Links | Dofollow | 
| Type deduction for objects using the auto keyword | Internal Links | Dofollow | 
| Type deduction for functions | Internal Links | Dofollow | 
| Introduction to function overloading | Internal Links | Dofollow | 
| Function overload differentiation | Internal Links | Dofollow | 
| Function overload resolution and ambiguous matches | Internal Links | Dofollow | 
| Default arguments | Internal Links | Dofollow | 
| Function templates | Internal Links | Dofollow | 
| Function template instantiation | Internal Links | Dofollow | 
| Function templates with multiple template types | Internal Links | Dofollow | 
| Chapter 8 summary and quiz | Internal Links | Dofollow | 
| Using a language reference | Internal Links | Dofollow | 
| Enumerated types | Internal Links | Dofollow | 
| Enum classes | Internal Links | Dofollow | 
| Structs | Internal Links | Dofollow | 
| Random number generation | Internal Links | Dofollow | 
| Chapter 9 summary and quiz | Internal Links | Dofollow | 
| Arrays (Part I) | Internal Links | Dofollow | 
| Arrays (Part II) | Internal Links | Dofollow | 
| Arrays and loops | Internal Links | Dofollow | 
| Sorting an array using selection sort | Internal Links | Dofollow | 
| Multidimensional Arrays | Internal Links | Dofollow | 
| C-style strings | Internal Links | Dofollow | 
| An introduction to std::string_view | Internal Links | Dofollow | 
| Introduction to pointers | Internal Links | Dofollow | 
| Null pointers | Internal Links | Dofollow | 
| Pointers and arrays | Internal Links | Dofollow | 
| Pointer arithmetic and array indexing | Internal Links | Dofollow | 
| C-style string symbolic constants | Internal Links | Dofollow | 
| Dynamic memory allocation with new and delete | Internal Links | Dofollow | 
| Dynamically allocating arrays | Internal Links | Dofollow | 
| Pointers and const | Internal Links | Dofollow | 
| Reference variables | Internal Links | Dofollow | 
| References and const | Internal Links | Dofollow | 
| Member selection with pointers and references | Internal Links | Dofollow | 
| For-each loops | Internal Links | Dofollow | 
| Void pointers | Internal Links | Dofollow | 
| Pointers to pointers and dynamic multidimensional arrays | Internal Links | Dofollow | 
| An introduction to std::array | Internal Links | Dofollow | 
| An introduction to std::vector | Internal Links | Dofollow | 
| Introduction to iterators | Internal Links | Dofollow | 
| Introduction to standard library algorithms | Internal Links | Dofollow | 
| Chapter 10 comprehensive quiz | Internal Links | Dofollow | 
| Function parameters and arguments | Internal Links | Dofollow | 
| Passing arguments by value | Internal Links | Dofollow | 
| Passing arguments by reference | Internal Links | Dofollow | 
| Passing arguments by address | Internal Links | Dofollow | 
| Returning values by value, reference, and address | Internal Links | Dofollow | 
| Inline functions | Internal Links | Dofollow | 
| Function Pointers | Internal Links | Dofollow | 
| The stack and the heap | Internal Links | Dofollow | 
| std::vector capacity and stack behavior | Internal Links | Dofollow | 
| Recursion | Internal Links | Dofollow | 
| Command line arguments | Internal Links | Dofollow | 
| Ellipsis (and why to avoid them) | Internal Links | Dofollow | 
| Introduction to lambdas (anonymous functions) | Internal Links | Dofollow | 
| Lambda captures | Internal Links | Dofollow | 
| Chapter 11 comprehensive quiz | Internal Links | Dofollow | 
| Welcome to object-oriented programming | Internal Links | Dofollow | 
| Classes and class members | Internal Links | Dofollow | 
| Public vs private access specifiers | Internal Links | Dofollow | 
| Access functions and encapsulation | Internal Links | Dofollow | 
| Constructors | Internal Links | Dofollow | 
| Constructor member initializer lists | Internal Links | Dofollow | 
| Non-static member initialization | Internal Links | Dofollow | 
| Overlapping and delegating constructors | Internal Links | Dofollow | 
| Destructors | Internal Links | Dofollow | 
| The hidden “this” pointer | Internal Links | Dofollow | 
| Class code and header files | Internal Links | Dofollow | 
| Const class objects and member functions | Internal Links | Dofollow | 
| Static member variables | Internal Links | Dofollow | 
| Static member functions | Internal Links | Dofollow | 
| Friend functions and classes | Internal Links | Dofollow | 
| Anonymous objects | Internal Links | Dofollow | 
| Nested types in classes | Internal Links | Dofollow | 
| Timing your code | Internal Links | Dofollow | 
| Chapter 12 comprehensive quiz | Internal Links | Dofollow | 
| Introduction to operator overloading | Internal Links | Dofollow | 
| Overloading the arithmetic operators using friend functions | Internal Links | Dofollow | 
| Overloading operators using normal functions | Internal Links | Dofollow | 
| Overloading the I/O operators | Internal Links | Dofollow | 
| Overloading operators using member functions | Internal Links | Dofollow | 
| Overloading unary operators +, -, and ! | Internal Links | Dofollow | 
| Overloading the comparison operators | Internal Links | Dofollow | 
| Overloading the increment and decrement operators | Internal Links | Dofollow | 
| Overloading the subscript operator | Internal Links | Dofollow | 
| Overloading the parenthesis operator | Internal Links | Dofollow | 
| Overloading typecasts | Internal Links | Dofollow | 
| The copy constructor | Internal Links | Dofollow | 
| Copy initialization | Internal Links | Dofollow | 
| Converting constructors, explicit, and delete | Internal Links | Dofollow | 
| Overloading the assignment operator | Internal Links | Dofollow | 
| Shallow vs. deep copying | Internal Links | Dofollow | 
| Overloading operators and function templates | Internal Links | Dofollow | 
| Chapter 13 comprehensive quiz | Internal Links | Dofollow | 
| Object relationships | Internal Links | Dofollow | 
| Composition | Internal Links | Dofollow | 
| Aggregation | Internal Links | Dofollow | 
| Association | Internal Links | Dofollow | 
| Dependencies | Internal Links | Dofollow | 
| Container classes | Internal Links | Dofollow | 
| std::initializer_list | Internal Links | Dofollow | 
| Chapter 16 comprehensive quiz | Internal Links | Dofollow | 
| Introduction to inheritance | Internal Links | Dofollow | 
| Basic inheritance in C++ | Internal Links | Dofollow | 
| Order of construction of derived classes | Internal Links | Dofollow | 
| Constructors and initialization of derived classes | Internal Links | Dofollow | 
| Inheritance and access specifiers | Internal Links | Dofollow | 
| Adding new functionality to a derived class | Internal Links | Dofollow | 
| Calling inherited functions and overriding behavior | Internal Links | Dofollow | 
| Hiding inherited functionality | Internal Links | Dofollow | 
| Multiple inheritance | Internal Links | Dofollow | 
| Chapter 17 comprehensive quiz | Internal Links | Dofollow | 
| Pointers and references to the base class of derived objects | Internal Links | Dofollow | 
| Virtual functions and polymorphism | Internal Links | Dofollow | 
| The override and final specifiers, and covariant return types | Internal Links | Dofollow | 
| Virtual destructors, virtual assignment, and overriding virtualization | Internal Links | Dofollow | 
| Early binding and late binding | Internal Links | Dofollow | 
| The virtual table | Internal Links | Dofollow | 
| Pure virtual functions, abstract base classes, and interface classes | Internal Links | Dofollow | 
| Virtual base classes | Internal Links | Dofollow | 
| Object slicing | Internal Links | Dofollow | 
| Dynamic casting | Internal Links | Dofollow | 
| Printing inherited classes using operator<< | Internal Links | Dofollow | 
| Chapter 18 comprehensive quiz | Internal Links | Dofollow | 
| Template classes | Internal Links | Dofollow | 
| Template non-type parameters | Internal Links | Dofollow | 
| Function template specialization | Internal Links | Dofollow | 
| Class template specialization | Internal Links | Dofollow | 
| Partial template specialization | Internal Links | Dofollow | 
| Partial template specialization for pointers | Internal Links | Dofollow | 
| Chapter 19 comprehensive quiz | Internal Links | Dofollow | 
| The need for exceptions | Internal Links | Dofollow | 
| Basic exception handling | Internal Links | Dofollow | 
| Exceptions, functions, and stack unwinding | Internal Links | Dofollow | 
| Uncaught exceptions and catch-all handlers | Internal Links | Dofollow | 
| Exceptions, classes, and inheritance | Internal Links | Dofollow | 
| Rethrowing exceptions | Internal Links | Dofollow | 
| Function try blocks | Internal Links | Dofollow | 
| Exception dangers and downsides | Internal Links | Dofollow | 
| Exception specifications and noexcept | Internal Links | Dofollow | 
| Chapter 20 comprehensive quiz | Internal Links | Dofollow | 
| Intro to smart pointers and move semantics | Internal Links | Dofollow | 
| R-value references | Internal Links | Dofollow | 
| Move constructors and move assignment | Internal Links | Dofollow | 
| std::move | Internal Links | Dofollow | 
| std::move_if_noexcept | Internal Links | Dofollow | 
| std::unique_ptr | Internal Links | Dofollow | 
| std::shared_ptr | Internal Links | Dofollow | 
| Circular dependency issues with std::shared_ptr, and std::weak_ptr | Internal Links | Dofollow | 
| Chapter M comprehensive review | Internal Links | Dofollow | 
| The Standard Library | Internal Links | Dofollow | 
| STL containers overview | Internal Links | Dofollow | 
| STL iterators overview | Internal Links | Dofollow | 
| STL algorithms overview | Internal Links | Dofollow | 
| std::string and std::wstring | Internal Links | Dofollow | 
| std::string construction and destruction | Internal Links | Dofollow | 
| std::string length and capacity | Internal Links | Dofollow | 
| std::string character access and conversion to C-style arrays | Internal Links | Dofollow | 
| std::string assignment and swapping | Internal Links | Dofollow | 
| std::string appending | Internal Links | Dofollow | 
| std::string inserting | Internal Links | Dofollow | 
| Input and output (I/O) streams | Internal Links | Dofollow | 
| Input with istream | Internal Links | Dofollow | 
| Output with ostream and ios | Internal Links | Dofollow | 
| Stream classes for strings | Internal Links | Dofollow | 
| Stream states and input validation | Internal Links | Dofollow | 
| Basic file I/O | Internal Links | Dofollow | 
| Random file I/O | Internal Links | Dofollow | 
| Static and dynamic libraries | Internal Links | Dofollow | 
| Using libraries with Visual Studio | Internal Links | Dofollow | 
| Using libraries with Code::Blocks | Internal Links | Dofollow | 
| Introduction to C++11 | Internal Links | Dofollow | 
| Introduction to C++14 | Internal Links | Dofollow | 
| Introduction to C++17 | Internal Links | Dofollow | 
| Introduction to C++20 | Internal Links | Dofollow | 
| The end? | Internal Links | Dofollow | 
| Log in | Internal Links | Dofollow | 
	   
     
Social
Social Data
Cost and overhead previously rendered this semi-public form of communication unfeasible.
But advances in social networking technology from 2004-2010 has made broader concepts of sharing possible.