C++ Fundamentals for Professionals

C++ Fundamentals for Professionals

C++ Fundamentals for Professionals
C++ Fundamentals for Professionals

C++ Fundamentals for Professionals

C++ is a common first choice for software developers when optimal performance and high

safety are necessary. Learning the rich core language and the many libraries, however, can be a neverending story. This course has one goal: ending that story.

This course is a combination of new material and material pulled from my other C++ courses, giving you all the most crucial information in one place. You will learn the necessary

information you need to be a professional C++ programmer, including the current C++17 standard.

You’ll explore memory management, inheritance, templates, vectors, threads, tasks, and much more. Once you're done, you’ll have all the necessary skills to take advantage of the potential of C++ in your day-to-day work.

Contents

1. Core Language

  • History
2. Literals
  • Literals
  • User-Defined Literals
  • C++14 Built-In Literals
  • Raw and Cooked
  • - Examples
  • - Exercises
  • - Solutions
3. Types
  • Scoped Enumerations
  • - Example
  • Pointers
  • Null Pointer
  • - Examples
  • References
4. Automatic Type Deduction
  • Automatic Type Deduction: auto
  • Refactorization with auto
  • - Examples
  • - Exercise
  • - Solution
  • Automatic Type Deduction: decltype
  • Automatic Return Type
  • - Example
  • - Exercise
  • - Solution
5. Casts
  • Explicit Cast
  • Dynamic Cast
  • Static Cast
  • Const Cast
  • Reinterpret Cast
  • Type Information
6. Unified Initialization
  • Unified Initialization with {}
  • - Examples
  • - Exercise
  • - Solution
7. const, constexpr, and volatile
  • Const
  • Constant Expressions: constexpr
  • - Examples
  • - Exercises
  • Volatile
8. Move Semantic and Perfect Forwarding
  • Rvalues and Lvalues
  • - Example
  • Copy vs. Move Semantics
  • Move Semantics
  • - Examples
  • - Exercises
  • - Solution
  • Perfect Forwarding
  • - Example
  • - Exercise
  • - Solution
9. Memory Management
  • Memory Allocation
  • Release of Memory
  • - Example
  • Overloading new and delete
  • Overloading new and delete: A Few Adjustments
  • - Exercise
10. Functions
  • Function Declarations
  • - Example
  • Function Overloading
  • Lambda Functions
  • - Examples
  • - Exercises
  • - Solution
11. Classes and Objects
  • Class Types
  • Constructors
  • More Kinds of Constructors
  • Initializers for Instances
  • - Exercise
  • - Solution
  • Constructor Delegation
  • Destructors
  • - Example
  • Methods
  • - Examples
  • Request and Suppress Methods
  • - Examples
  • - Exercise
  • - Solution
  • Operator Overloading
  • Explicit Conversion Operators
  • - Exercise
  • - Solution
  • Call Operator
  • - Example
  • - Exercise
  • - Solution
  • Access Rights for Members
  • - Example
  • Friend Declarations
  • Structs and Unions
12. Inheritance
  • Abstract Base Classes
  • Access Rights
  • - Examples
  • - Exercise
  • Constructor Inheriting
  • - Example
  • - Exercise
  • - Solution
  • Base Class Initializers
  • Destructor Calls
  • - Exercise
  • Virtual Methods
  • - Example
  • - Exercise
  • Override and Final
  • - Examples
  • - Exercise
  • - Solution
  • Multiple Inheritance
  • - Examples
13. Templates
  • Function Templates
  • - Examples
  • - Exercise
  • - Solution
  • Class Templates
  • - Examples
  • - Exercise
  • - Solution
  • Friends
  • - Examples
  • - Exercise
  • - Solution
  • Template Parameters
  • - Examples
  • - Exercise
  • - Solution
  • Dependent Names
  • - Example
  • Variadic Templates
  • - Examples
  • Template Arguments
  • - Examples
  • - Exercise
  • - Solution
  • Specialization
  • - Examples
  • - Exercise
  • - Solution
  • CRTP
  • - Examples
  • - Exercises
  • - Solutions
14. Utilities
  • std::bind and std::function
  • - Exercise
  • - Solution
  • std::pair
  • std::tuple
  • - Exercise
  • - Solution
  • Reference Wrappers
  • Type Traits
  • Type Traits: Categories and Transformations
  • - Examples
  • - Exercise
  • - Solution
15. Smart Pointers
  • Introduction
  • Unique Pointers
  • - Examples
  • Shared Pointers
  • - Examples
  • Weak Pointers
  • - Example
  • Cyclic References
  • - Example
  • - Exercise
  • - Solution
  • Performance Comparison
  • Passing Smart Pointers
16. 1. Containers in General
  • Introduction
  • Create and Delete
  • Size
  • Access
  • Assign and Swap
  • Compare
17. 1.1 Sequential Containers
  • Introduction
  • Arrays
  • - Exercise
  • - Solution
  • Vectors
  • - Exercise
  • - Solution
  • Deques
  • Lists
  • Forward Lists
  • - Exercise
18. 1.2 Associative Containers in General
  • Introduction
  • Insertion and Deletion
19. 1.2.1 Ordered Associative Containers
  • Overview
  • Keys and Values
  • The Comparison Criterion
  • Special Search Functions
  • Maps
  • - Exercise
20. 1.2.2 Unordered Associative Containers
  • Overview
  • Keys and Values
  • Performance
  • The Hash Function
  • The Details
  • - Exercise
  • - Solution
21. 1. Algorithms
  • Introduction
  • Conventions
  • for_each
  • - Exercise
  • - Solution
22. 1.1 Non-Modifying Algorithms
  • Introduction
  • Search Elements
  • Counting Elements
  • Test Ranges
  • Compare Ranges
  • Search Ranges
23. 1.2 Modifying Algorithms
  • Copy Elements and Ranges
  • Replace Elements and Ranges
  • Remove Elements and Ranges
  • Fill and Generate Ranges
  • Move Ranges
  • Swap Ranges
  • Transform Ranges
  • Reverse Ranges
  • Rotate Ranges
  • Shuffle Ranges
  • Remove Duplicates
24. 1.3 More Algorithms
  • Partition
  • Sort
  • Binary Search
  • Merge Operation
  • Heaps
  • Minimum and Maximum
  • Permutations
  • Numeric
  • - Exercise
  • - Solution
25. Callables
  • Introduction
  • Functions and Function Objects
  • Lambda Functions
26. Iterators
  • Introduction
  • Categories
  • Iterator Creation
  • Useful Functions
  • Adaptors
27. Strings
  • Introduction
  • Create and Delete
  • Conversion Between C++ and C Strings
  • Size versus Capacity
  • Comparison and Concatenation
  • Element Access
  • Input and Output
  • Search
  • - Exercise
  • - Solution
  • Modifying Operations
  • Numeric Conversions
28. Regular Expressions
  • Introduction
  • Character Types
  • Regular Expression Objects
  • The Search Result
  • Match
  • Search
  • - Exercise
  • - Solution
  • Replace
  • - Exercise
  • - Solution
  • Format
  • Repeated Search
29. Input and Output
  • Introduction
  • String Streams
  • File Streams
  • - Exercise
  • - Solution
  • The State of the Stream
  • User-Defined Data Types
  • Hierarchy
  • iostream
  • Input and Output Functions
  • - Exercise
  • - Solution
  • Format Specifier
  • - Exercise
30. Threads
  • Introduction to Threads
  • Creation of Threads
  • Managing Thread Lifetime
  • Thread Lifetime Management: Warnings and Tips
  • Passing Arguments to Threads
  • Arguments of Threads: Undefined Behavior
  • Arguments of Threads: Race Conditions and Locks
  • - Exercise
  • - Solution
  • Methods of Threads
  • Methods of Threads in Practice
31. Shared Data
  • Introduction to Shared Data
  • Introduction to Mutexes
  • Mutex Types and Locking Methods
  • Issues of Mutexes: Deadlocks
  • Issues of Mutexes: Avoiding Exceptions
  • Types of Locks: std::lock_guard
  • Types of Locks: std::unique_lock
  • Types of Locks: std::shared_lock
  • - Exercise
  • - Solution
  • Thread-Safe Initialization
  • Thread-Safe Initialization: Constant Expressions
  • Thread-Safe Initialization: call_once and once_flag
  • - Exercise
  • - Solution
  • Thread-Safe Initialization - Static Variables with Block Scope
32. Tasks
  • Introduction to Tasks
  • Threads vs. Tasks
  • Introduction to std::async
  • async: Start Policy
  • async: Fire and Forget
  • - Exercise
  • - Solution
  • Introduction to std::packaged_task
  • - Exercise
  • - Solution
  • Introduction to Promises and Futures
  • - Exercise
  • - Solution
  • Promise and Future: Returning a Notification
  • Introduction to std::shared_future
33. Conclusion
  • Where to Go from Here?
https://www.educative.io/courses/cpp-fundamentals-for-professionals?aff=xDzJ

Share This :
Santosh Kumar

We are sharing the knowledge for free of charge and help especially third world countries who can create a simple blog and start making money from own blog. so we have launched this site. Facebook | Twitter | Pinterest | LinkedIn