Welcome to the C++ Developer Nanodegree Program

Workspaces

Welcome to Bootcamp AI

Welcome

Learn basic C++ syntax, functions, containers, and compiling and linking with multiple files. Use OpenStreetMap and the 2D visualization library IO2D to build a route planner that displays a path between two points on a map.

Introduction to the C++ Language

A Search

Writing Larger Programs

Extending the OpenStreetMap Data Model

A with OpenStreetMap Data

Build an OpenStreetMap Route Planner

Course Outro

Welcome

Explore Object-Oriented Programming (OOP) in C++ with examples and exercises covering the essentials of OOP like abstraction and inheritance all the way through to advanced topics like polymorphism and templates. In the end, you’ll build a Linux system monitor application to demonstrate C++ OOP in action!

Intro to OOP

Advanced OOP

Project System Monitor

Coming Soon Updated System Monitor Project

Introduction

Discover the power of memory management in C++ by diving deep into stack vs. heap, pointers, references, new, delete, smart pointers, and much more. By the end, you’ll be ready to work on a chatbot using modern C++ memory management techniques!

Pointers and References

new and delete

Smart Pointers

Garbage Collector

Introduction and Running Threads

Concurrent programming runs multiple threads of execution in parallel. Concurrency is an advanced programming technique that, when properly implemented, can dramatically accelerate your C++ programs.

Passing Data Between Threads

Mutexes and Locks

Condition Variables and Message Queues

Program a Concurrent Traffic Simulation

Industry Research

Capstone —

Put your C++ skills to use on a project of your own! You’ll utilize the core concepts from this Nanodegree program - object-oriented programming, memory management, and concurrency - to build your own application using C++.
07. Compilation

Compilers

C++ is a compiled programming language, which means that programmers use a program to compile their human-readable source code into machine-readable object and executable files. The program that performs this task is called a compiler.

C++ does not have an “official” compiler. Instead, there are many different compilers that a programmer can use.

GNU Compiler Collection (GCC)

In this program we primarily use the GNU Compiler Collection, which is a popular, open-source, cross-platform compiler from the larger GNU Project. In particular, we use the g++ program, which is a command line executable that compiles C++ source code and automatically links the C++ Standard Library.

Linking

C++ Compilation Process (Wikimedia)

In order to use classes and functions from the C++ Standard Library, the compiler must have access to a compiled version of the standard library, stored in object files. Most compiler implementations, including GCC, include those object files as part of the installation process. In order to use the Standard Library facilities, the compiler must “link” the standard library object files to the object files created from the programmer’s source code.

Once the compiler links together the necessary object files, it is able to generate a standalone executable file that can run on the operating system.