| | 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.