WEBVTT

00:00:04.340 --> 00:00:10.220
Hi everyone, my name is Mateo, and welcome to my course on Working with Pointers

00:00:10.220 --> 00:00:16.570
and Arrays in C++ 20. To understand modern C++ approach to pointers and memory,

00:00:16.570 --> 00:00:21.950
we first need to cover what pointers are and how they work. In this course, we

00:00:21.950 --> 00:00:24.010
are going to learn about indirection,

00:00:24.020 --> 00:00:28.410
arrays, and memory management. First we need to get familiar with raw

00:00:28.410 --> 00:00:32.490
pointers and references to understand how indirection works.

00:00:32.509 --> 00:00:36.690
Pointers can give us access to dynamically allocated objects on

00:00:36.690 --> 00:00:40.520
the heap. We'll learn how to manage that region of memory, and

00:00:40.520 --> 00:00:43.780
why we need better abstraction mechanisms to prevent potential

00:00:43.780 --> 00:00:45.570
issues like memory leaks.

00:00:46.040 --> 00:00:49.840
Then we will utilize pointer arithmetic to see how arrays relate

00:00:49.840 --> 00:00:52.660
to pointers and dynamic memory allocation.

00:00:53.140 --> 00:00:56.490
Object‑oriented programming is embedded in the core of the

00:00:56.490 --> 00:01:00.260
C++ language, so we need to figure out how pointers behave

00:01:00.270 --> 00:01:02.560
in user‑defined data types.

00:01:02.940 --> 00:01:06.520
This part of the course will include a set of demonstrations for

00:01:06.530 --> 00:01:12.110
implementing virtual functions, RAII, and copy and move semantics.

00:01:12.540 --> 00:01:15.850
Finally, once we are familiar with all of the main concepts,

00:01:15.850 --> 00:01:19.760
we can learn about modern C++ classes from the standard library,

00:01:19.770 --> 00:01:24.470
which can help us in abstracting away a lot of complexity related to managing

00:01:24.470 --> 00:01:30.460
pointers and arrays. We will cover standard arrays, vectors, and all of the

00:01:30.460 --> 00:01:34.060
smart pointer classes provided by the standard library.

00:01:34.240 --> 00:01:38.390
Some of the major topics that we will cover include pointers and

00:01:38.390 --> 00:01:42.540
references, dynamic memory allocation, array management,

00:01:42.550 --> 00:01:46.460
copy and move semantics, smart pointers, and much

00:01:46.460 --> 00:01:48.380
more. By the end of the course,

00:01:48.390 --> 00:01:51.910
you will be familiar with how indirection and memory management

00:01:51.910 --> 00:01:55.180
work so you will be able to pick the appropriate abstraction

00:01:55.180 --> 00:01:57.650
mechanism based on the given situation.

00:01:58.140 --> 00:02:01.080
I hope you'll join me on this journey to learn how pointers

00:02:01.090 --> 00:02:04.670
and arrays work with the Working with Pointers and Arrays in

00:02:04.670 --> 00:02:08.550
C++ 20 course at Pluralsight.
