If C++ scares you, or you've heard that it's a difficult language, this course will show you how easy Modern C++ can be. It's a powerful language that works on a huge variety of platforms and has useful features that other languages don't have.
C++ is a general purpose programming language that is used by millions of developers. It has a reputation for being hard to learn and use, but with the changes in the language over the last few decades, this reputation is no longer deserved. C++ offers a powerful combination of performance and abstraction that other languages don’t have. In this course, C++ Fundamentals Including C++ 17, you'll learn how to write simple console applications and be ready to move on to writing platform-specific code. First, you’ll learn the basics of language syntax: declaring variables, classes, building expressions using operators and functions, working up to templates, indirection, and polymorphism. You'll explore the syntax additions from C++ 11, C++ 14, and C++17, using any modern compiler to run the examples. You'll also see the principles of Modern C++ in action, relying on the Standard Library and using idioms like Resource Acquisition is Initialization to reduce the effort involved in memory management. By the end of this course, you’ll be comfortable reading and writing Modern C++, including features added in C++17.
Kate Gregory is in her fourth decade of being paid to program. Her firm, Gregory Consulting Limited, is based in rural Ontario and helps clients adopt new technologies and adjust to the changing business environment. Current work makes heavy use of .NET and Visual C++ for both web and client development, especially for Windows 7 and 8. Managing, mentoring, technical writing, and technical speaking occupy much of her time, but she still writes code every week.
Course Overview Hi everyone, my name is Kate Gregory, and welcome to my course, C++ Fundamentals Including C++ 17. I'm a consultant and mentor at Gregory Consulting. I've been using C++ for over 30 years and I speak at C++ conferences regularly. C++ is a powerful language that's suitable for platforms as small as you can imagine, applications that literally run in piece or jewelry, and as large as you can imagine too. It delivers tremendous performance, not just fast code, but code that uses less electricity to get the job done, and it keeps changing as the standards committee adds language and library features. This course is an introduction to today's C++, readable, expressive, powerful coding that uses the full capability of the language. If you think you remember C++, especially if you remember it from last century, you probably don't. Modern C++ is easier to learn and you're going to like learning it. Some of the major topics we're going to cover include the basic syntax, you know variables, expressions, functions, classes, and then templates, operator overloading, const, these are things that C++ has that not all languages do so they get a little more attention. And we'll work our way up to indirection with pointers, and references, and how to avoid manual memory management. By the end of the course you'll be comfortable reading and writing modern C++, including features that were added in C++ 11, C++ 14, and C++ 17. You'll know how to write simple console applications and you'll be ready to move to writing platform-specific code. Before beginning the course you should have done some programming in any other language; that language doesn't have to be C, literally any language would be fine. It just helps if you already understand the idea of a variable or of calling a function. If you have no programming experience at all try my Learn How to Program With C++ course instead, it starts a little earlier in the process. From here you should feel comfortable diving into C++ with courses on STL algorithm, the C++ core guidelines, and other advanced topics. I hope you'll join me on this journey to learn C++ with the C++ Fundamentals Including C++ 17 course, here at Pluralsight.
Understanding C++ in Context Hi, welcome to C++ Fundamentals Including C++17. My name is Kate Gregory, and I like to introduce myself by telling people I've been using C++ since before Microsoft had a C++ compiler, or basically any company you've heard of today. That's over 30 years, and in that time I've seen a lot of changes to the language and to how people use it. If you did a course in college 10 or 20 years ago, or you know somebody who did and who told you about it, you might not recognize the C++ I'm going to show you. I'm going to teach the basics you need to write good C++, the most popular general purpose programming language ever, and one that's still relevant and useful today. In this module I'll tell you some of advantages of C++ and why so many developers are still using it and why new ones are learning it all the time. You'll also start to learn what modern C++ is and why it's the way to write C++ this century, then you'll be ready to start writing some code.
Tools Hi, welcome back to C++ Fundamentals. My name is Kate Gregory and I'm introducing you to the most popular general-purpose programming language, C++. In this module I'll talk about the tools you need to get started and I'll introduce you to the tool I'll be using in my demos, although you can use whatever C++ tools work for you. I'll also start to introduce some C++ syntax and get you familiar with how the code looks. By the time you finish this module you will have created and run a C++ application using the tools you've chosen. You'll be ready for hands-on learning, the syntax of the language, the libraries that are provided, and how it all works together.
Variables and Fundamental Types Hi, welcome back to C++ Fundamentals. My name is Kate Gregory and I'm introducing you to the most popular general-purpose programming language, C++. In this module I'll begin a discussion of variables by talking about fundamental types and showing you how to work with variables of different types. One of my favorite sayings is the compiler is your friend, and I'll show you how the compiler can save you from mistakes that you might not spot yourself.
Language Basics - User Defined Types Hi, welcome back to C++ Fundamentals Including C++17. My name is Kate Gregory and I'm introducing you to the most popular general-purpose programming language, C++. In this module you'll meet the fundamental building block of C++, a user-defined type. You'll see how to define your own classes and I'll introduce scope, which is a vitally important C++ concept. This module also covers the struct keyword, namespaces, and the using keyword, and enumerations, so we'd better get started.
Language Basics – Flow of Control Hi, welcome back to introduction to C++ including C++17. My name is Kate Gregory and I'm introducing you to the most popular general-purpose programming language, C++. In this module I'll show you what order your program executes in. C++ has a number of keywords you use to do things over and over again in a loop or to skip some code unless particular conditions are met. You're probably familiar with many of these from other languages, so you just need to see the syntax and punctuation.
Language Basics - Functions Hi, welcome back to C++ Fundamentals Including C++17. My name is Kate Gregory and I'm introducing you to the most popular general-purpose programming language, C++. In this module we're going to turn to functions, they're a very important part of C++. And typically once you start writing functions and building your applications out of multiple files, you start to get compiler or linker errors, and C++ beginners can have a lot of trouble interpreting these, so I'm going to give you kind of a secret decoder ring for these errors, I hope it keeps your frustrations down.
Language Basics - Operators Hi, welcome back to introduction to C++ including C++17. My name is Kate Gregory and I'm introducing you to the most popular general-purpose programming language, C++. In this module I'll show you the operators used throughout C++. Many of them you've already seen, like arithmetic or comparisons. There a few things that might not be the same as in another language you know, so in this module I'll give them all a good workout. I'll also show you how to overload operators, a very important C++ concept.
Templates Hi, welcome back to C++ Fundamentals, including C++ 17. My name is Kate Gregory, and I'm introducing you to the most popular general purpose programming language, C++. In this module, you'll learn about templates. Templates in C++ are similar to generics in other languages, but different in some very important ways. When you first get started in C++, you use templates, sometimes without even knowing it. I'll show you how to write them, but only so we have some samples to use in the demo. Understanding how they work takes the magic factor out of using them, and it's using templates that will be your major exposure to them.
Indirection Hi, welcome back to C++ Fundamentals, including C++ 17. My name is Kate Gregory, and I'm introducing you to the most popular general purpose programming language, C++. Now if you've been telling people that you're learning C++, somebody has probably told you that it's a scary language, and they've probably told you that what's scary about it is pointers. In this module, I'm going to start talking about indirection with references and pointers. As you've seen, you can write useful and powerful C++ applications without pointers. In fact, most memories of pointers are difficult stories, that they're based on the old times, how C++ used to be written. So it's time to start to see what pointers are, what they're for, and when references would serve the same purpose more simply. In this module, we'll start with the syntax. How do you get one? How do you use one? And I also want to talk about how const comes into play. So let's get started.
Memory Management Hi, welcome back to C++ Fundamentals, including C++ 17. My name is Kate Gregory, and I'm introducing you to the most popular general purpose programming language, C++. In this module, I'll show you how you can have long-lived objects in your application. One of the important uses of pointers in C++ is to access memory known as the free store. I will go through why manual memory management of that kind of memory is so difficult, and also why you should never have to do it. The smart pointers that were added in C++ 11 and improved in C++ 14 make memory management something you don't have to do for yourself.
Indirection and Inheritance Welcome back to C++ Fundamentals, including C++ 17. My name is Kate Gregory, and I'm introducing you to the most popular general purpose programming language, C++. In this module, I'll talk about polymorphism in C++. It's a powerful technique that lets you write general code and get specific behavior, thanks to inheritance. Now polymorphism doesn't sneak up on you. It can only happen when you have classes that inherit from other classes, and then you interact with objects that are in that class hierarchy using references or pointers. Some other words that arise in this area are virtual, slicing, and casting. And in order to really get the C++ indirection story, you need to explore what happens with references and pointers to objects that are part of an inheritance hierarchy. That's what I'll show you.