O'Reilly logo

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Learning Path: Beginning C++

Video Description

C++ is a powerful high-level language with a wealth of recently added features that enhance its capabilities, such as auto type declarations, move semantics, lambda expressions, and concurrency support. In this Learning Path, you'll learn how to use those features effectively, resulting in software that is correct, efficient, maintainable, and portable. By the end of this course, you'll have a solid foundation in writing, compiling, and debugging C++ applications, and will be ready to move on to more advanced C++ challenges

Table of Contents

  1. Introduction
    1. Introduction And Course Overview 00:05:32
    2. A First Look At The Tools Required 00:07:18
    3. About The Author 00:04:50
  2. Your First C++ Program
    1. Creating Your First C++ Program 00:08:16
    2. Installing A C++ Compiler 00:06:46
    3. Compiling And Running Your Program 00:08:48
    4. Introduction To The Main Function Of A C++ Program 00:05:45
    5. Dealing With Program Arguments 00:08:26
    6. Hands On - Enhancing Our Hello World C++ Program 00:07:38
  3. C++ Language Elements
    1. Overview 00:03:49
    2. Primitive Language Data Types 00:07:51
    3. Using Variables 00:07:41
    4. Introduction To Operators And Operator Precedence 00:06:03
    5. Introduction To Control Flow, Part 1 00:11:56
    6. Introduction To Control Flow, Part 2 00:08:21
    7. Statements And Expressions 00:11:19
    8. Using Include Files With Multiple Files 00:10:15
    9. Hands On – Programming A Basic Calculator 00:11:57
  4. Testing C++ Programs
    1. Testing In C++ 00:04:40
    2. Introduction To Testing 00:11:26
    3. Introduction To libunittest Testing 00:12:37
    4. Introduction To UnitTest++ Testing 00:08:51
    5. Introduction To Google Test 00:12:02
    6. Hands On - Programming with Tests 00:13:01
  5. Functions
    1. Chapter Overview 00:03:35
    2. A Function Primer 00:08:47
    3. Function Scopes 00:06:40
    4. Unit Testing Functions 00:12:35
    5. Function Best Practices 00:08:30
    6. Hands On – Programming With Functions 00:10:21
  6. Pointers, Arrays, And References
    1. C++ And Memory 00:04:18
    2. C++ Pointers 00:06:47
    3. Allocating And Deallocating Memory 00:09:19
    4. Pointers, References, And Value Types 00:04:00
    5. Pointers In C++11 00:09:17
    6. Hands On – Pointers And Heap Allocation In C++11 00:07:00
  7. Classes, Structs And Object-Oriented Programming
    1. Chapter Overview 00:03:25
    2. Structs And Classes 00:10:57
    3. Using Structs And Classes 00:11:01
    4. Object-Oriented Programming 00:11:36
    5. Namespaces - The C++ Module System 00:04:15
    6. Hands On – Designing With Class - Part 1 00:07:53
    7. Hands On – Designing With Class - Part 2 00:07:08
  8. Templates And Generic Programming
    1. A Motivating Example 00:05:14
    2. Template Functions 00:05:04
    3. Template Classes 00:09:34
    4. Generic Programming Case Study 00:08:23
    5. Hands On – Generic Programming - Part 1 00:09:26
    6. Hands On – Generic Programming - Part 2 00:05:22
  9. The Standard Template Library
    1. Chapter Overview 00:03:08
    2. STL Overview 00:10:17
    3. STL Containers - Part 1 00:10:08
    4. STL Containers - Part 2 00:07:26
    5. STL Iterators 00:07:50
    6. STL Algorithms - Part 1 00:07:43
    7. STL Algorithms - Part 2 00:07:04
    8. Lambdas And Function Objects - Part 1 00:11:23
    9. Lambdas And Function Objects - Part 2 00:05:39
  10. Error Handling In C++
    1. Basic Error Handling 00:06:58
    2. Introduction To Exceptions 00:08:17
    3. Introduction To STL Exceptions 00:04:44
    4. Programming With Exceptions 00:07:50
    5. Hands On – Programming With Exceptions 00:07:51
  11. Makefiles
    1. Anatomy of a Makefile 00:08:40
  12. Conclusion
    1. Wrap Up 00:04:32
  13. Introduction
    1. Introduction 00:04:11
    2. About The Author 00:02:04
    3. Overview Of C++ Best Practices Online Book 00:01:52
    4. Use The Correct Types And Const As Much As Possible 00:03:07
    5. Use The Tools Available 00:06:55
    6. A Note About Optimization 00:05:32
    7. What Are The C++ Core Guidelines 00:02:15
  14. Expressions And Statements
    1. Don't Define A (C-Style) Variadic Function 00:05:57
    2. Prefer A Range-Based For Loop When Possible 00:05:36
    3. Know The Standard Library 00:04:20
    4. Don't Depend On Order Of Evaluation Of Function Arguments 00:04:27
    5. Avoid Casting 00:05:24
    6. Exercise 1 - Chapter 2: Simplify 00:05:19
    7. Exercise 2 - Chapter 2: Use Standard Algorithms 00:04:32
  15. Expressions And Statements - 2
    1. Variable Scopes And Initialization 00:05:28
    2. Properly Initialize Member Variables 00:04:39
    3. Use Lambdas For Complex Initialization, Especially Of Const Variables 00:05:09
    4. Exercise 1 - Chapter 3: Clean Up Object Initialization 00:05:29
    5. Exercise 2 - Chapter 3: Expressions And Statements - Putting It All Together 00:11:17
  16. Resource Management
    1. In Interfaces, Use Raw Pointers To Denote Single Objects Only 00:04:24
    2. Manage Resources Automatically Using Resources Handles And RAII 00:05:07
    3. Avoid Defining Any Default Operations, Or Define Them All 00:04:27
    4. Prefer Stack Objects 00:05:30
    5. Exercise 1 - Chapter 4: Fix Pointer Interface 00:03:06
    6. Exercise 2 - Chapter 4: Implement Scoped Cleanup Object 00:03:50
    7. Exercise 3 - Chapter 4: Consider The Rule Of 0 00:04:33
  17. Resource Management - 2
    1. Don't Use Malloc And Free 00:02:54
    2. Avoid New And Delete 00:04:46
    3. Use unique_ptr Or shared_ptr Correctly 00:05:22
    4. Use std::weak_ptr To Break Cycles 00:03:35
    5. Exercise 1 - Chapter 5: Fix The Memory Error 1 00:04:36
    6. Exercise 2 - Chapter 5: Fix The Memory Error 2 00:05:29
  18. Resource Management - 3
    1. Don't Pass Smart Pointers Unless You Need To Convey Ownership 00:04:00
    2. Avoid Copying Of shared_ptr 00:03:03
    3. Do Not Pass A Pointer Or A Reference Obtained From An Aliased Smart Pointer 00:03:27
    4. Use Standard Containers When Interacting With C APIs 00:04:34
    5. Exercise 1 - Chapter 6: Fix shared_ptr Usage 00:04:16
  19. Conclusion
    1. Expressions And Statements Refresher 00:02:49
    2. Resource Management Refresher 00:03:15
    3. Exercise 1 - Chapter 7: Refactor 00:07:03
    4. Exercise 1 - Chapter 7: Refactor - Solution 00:04:14
    5. Next Steps - Guideline Support Library 00:02:44
    6. Next Steps - Contributing Back 00:02:52
    7. Wrap Up And Thank You 00:01:10