The course is part of this learning path
In this course, we will build on your existing foundational and object-oriented oriented skills and enhance them by looking at templates, the Standard Template Library, and other skills to help you in your builds.
Learning Objectives
- Learn about function templates and class templates
- Learn how to write efficient and excellent code with the data structures and algorithms in the standard template library
- Learn about smart pointers to manage dynamic memory automatically
- Understand friend functions, friend classes, and operator overloading
Intended Audience
- Beginner coders, new to C++
- Developers looking to upskill by adding C++ to their CV
- College students and anyone studying C++
Prerequisites
To get the most out of this course, you should have a basic understanding of the fundamentals of C++.
In this section, we will build on the foundational and object-oriented oriented skills that we've learned throughout the course. We will learn about function templates and class templates, which will help us encourage software reuse. Additionally, we will learn about the standard template library or STL, which contains tons of data structures and algorithms that help us write efficient and excellent code with less effort than if we had to do everything from scratch. We discuss Smart Pointers which manage dynamic memory for us automatically so we don't have to. Further, we will discuss friend functions and friend classes, a controversial feature of C++ that a lot of developers don't like but that is crucial to understand in order to recognize it in code, or in some occasions write it yourself. We will round out this section with coverage of operator overloading, a feature that many languages don't support, but that is an integral part of C++ development with many possibilities. We finalize our section with two very cool projects. We will construct an interactive dictionary that is based on an STL data structure, the map. And we will also write an alien class and flex our abilities with operators and operator overloading to see what results we get from breeding different aliens and comparing them in terms of their prestige. So, we've got a lot of wild and crazy awesome topics to get through in this section. We start our journey with templates in the next lecture. Let's get going.
John has a Ph.D. in Computer Science and is a professional software engineer and consultant, as well as a computer science university professor and department chair.