A Complete Introduction to the C++ Programming Language
3.9 (5 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
48 students enrolled
Wishlisted Wishlist

Please confirm that you want to add A Complete Introduction to the C++ Programming Language to your Wishlist.

Add to Wishlist

A Complete Introduction to the C++ Programming Language

Learn the C++ programming language with a step-by-step introduction of all the important concepts and language features.
3.9 (5 ratings)
Instead of using a simple lifetime average, Udemy calculates a course's star rating by considering a number of different factors such as the number of ratings, the age of ratings, and the likelihood of fraudulent ratings.
48 students enrolled
Created by Dmitri Nesteruk
Last updated 11/2016
English
Current price: $10 Original price: $50 Discount: 80% off
5 hours left at this price!
30-Day Money-Back Guarantee
Includes:
  • 3 hours on-demand video
  • 3 Articles
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Comfortably write, compile, link and run C++ programs
  • Solve problems using the C++ programming language
  • Apply modern C++ programming practices
View Curriculum
Requirements
  • Access to a computer is required for following this course (duh!)
Description

This course will teach you the fundamentals of the C++ programming language, with a focus on Modern C++ features and the efficient use of tools. Start with the fundamentals and work your way up to advanced C++11 concepts and OOP mastery!

Here are some of the things we are going to cover:

  • ˜C++ ecosystem: compilers, IDEs
  • ˜The compilation process
  • ˜Data types: numeric, strings, arrays, etc.
  • ˜Control flow
  • ˜Memory management
  • ˜User-defined types
  • ˜Object-oriented programming
Why take this course? Glad you asked. This course is...
  • ˜Fast-paced, yet feature-complete
  • ˜Covers only modern C++ (C++11, C++14, etc.)... no legacy C/C++!
  • ˜Opinionated towards best practices
  • ˜Additional content – driven by you!
That last part means that additional lectures will appear driven by your comments and requests.
Enjoy!
Who is the target audience?
  • Anyone interested in the C++ programming language
  • Course not suitable for people who do not want to write super-fast native code
Students Who Viewed This Course Also Viewed
Curriculum For This Course
68 Lectures
02:55:52
+
Overview
12 Lectures 30:33

This lecture introduces you to the entire course. This is where you get to find out what the course is all about, how it's structured and what it actually covers.

Preview 01:33

What is this beast we call C++? Why is it worth learning C++ as opposed to C#, Java or <insert fancy language here>?

Preview 00:58

Let's talk about the industries that use C++ most, and why they are using it.

Preview 02:25

What's so great about C++?

Preview 02:47

C++ has plenty of issues, and it pays to be aware of them in advance.

Preview 03:19

This lecture discusses the new term Modern C++ which refers, roughly, to the C++11 and later standards of the language.

What is Modern C++?
01:15

The tool that turns your code into an actual program is called a compiler, and there are lots of C++ compilers out there.

Compilers
02:21

Making an application is not easy, which is why build systems exist - they help us put together all the necessary parts to produce the final product. Build systems can be local or distributed (i.e., use more than one computer).

Build Systems
02:17

If you want to use code that someone else has written, or share your code to be reused, you will be working with libraries. There are two types of libraries - static and dynamic.

Libraries
02:34

Integrated Development Environments (IDEs) make life a lot easier.

IDEs
02:27

A look at a REPL (read-eval-print-loop) environment for C++.

Cling: an Interactive C++ Interpreter
08:07

Homework: Choose Your Editor
00:30
+
Getting Started
6 Lectures 23:23

What is source code, exactly?

Source Code
05:40

The preprocessor is a nasty, archaic part of the compilation process. But, for now, there's no way of avoiding it.

Preprocessor
04:47

Finally, the process of turning source code into something useful... object files!

Compilation
01:33

Once you have all your object files, you can link them together to produce an executable or a library.

Linking
02:42

A bonus video on using Cling for scripting... if you are starting with C++, you totally must get yourself Cling. It's just that good.

Scripting
08:07

Homework: Install and Use Cling
00:34
+
Numeric Types
9 Lectures 21:17

We discuss the notion of a type system, what it means to work with a statically typed language, and the difference between built-in and user-defined types.

Preview 01:38

Variables store data. Simple as that.

Variables
02:27

These data types store whole numbers, like -42 or 1 million. But there are lots of them, they can be signed or unsigned, and C++ has plenty of issues with representing integral types consistently.

Integral Types
05:23

Different symbols such as + or / that can operate on numbers.

Operators
04:12

Finally, non-whole numbers! And things are a little simpler here than with integers.

Floating-Point Types
02:06

What happens when you add an int and a float? There are rules for this!

Mixing Numeric Types
02:05

The auto keyword saves a lot of effort. And now is as good a time as any to become familiar with it.

Auto
01:28

A few words about where you can find common mathematical operations, complex number support, and a word about the different math libraries that are out there.

Doing Math
01:35

Numeric Types Quiz
6 questions

Homework: Solve a Quadratic Equation
00:23
+
Control Flow
8 Lectures 16:13

We take a look at logical (boolean) types and the two special values `true` and `false`.

Logical Types
02:06

We look at how to compare values using operators such as `<`, `!=` and others.

Comparison Operators
01:48

We look at how conditions can be grouped using `&&` (AND), `||` (OR) and other operators.

Logical Operators
00:56

What is a scope and why should you care?

Scope
02:54

A look at how to execute code conditionally with the `if-then-else` construct. Also we discuss the ternary `?:` operator that can offer a shorter alternative.

If-Then-Else and the Ternary Operator
02:52

The `switch` makes it easier to check a value against several discrete cases. The `break` lets you jump out of various control flow constructs.

Switch and Break
01:49

The `while` loop lets you execute the associated code block while a condition holds.

Do-While Loops
02:16

The most versatile loop of them all.

For Loop
01:32

Some questions on your understanding of Control Flow concepts.

Control Flow Quiz
3 questions
+
Memory Management
5 Lectures 12:58

We discuss some of the memory areas that are used by a typical C++ program.

Stack and Heap
02:02

We discuss the Stack, which is an area of memory for statically allocated objects of known size.

Stack
02:40

We discuss the Heap, an area of memory used for dynamic allocation.

Heap
02:51

Pointers are variables which store memory addresses, i.e., point to other variables.

Pointers
03:24

References refer to other variables. Their syntax is different (and arguably simpler) than that of pointers.

References
02:01

Some quesitons about memory management.

Memory Management Quiz
5 questions
+
Arrays
5 Lectures 16:36

Arrays are nice and useful.

Introducing Arrays
06:12

A discussion of how to go through all the elements in the array.

Traversing Arrays
03:36

How to make 2D arrays on the stack on the heap. Extensible to arrays of any dimension.

Multidimensional Arrays
03:14

A more user-friendly array class from the Standard Library.

std::array
02:14

An extensible array type that you should be using for just about every situation where a collection of same-type elements needs to be stored.

std::vector
01:20
+
Characters and Strings
4 Lectures 10:37

We look at how to store textual information in C++.

Characters and C-Style Strings
04:24

Standard Library comes to the rescue with a string type we can actually use.

std::string
01:28

A look at some useful things you can do with an std::string.

Common Operations
02:27

Another badly defined piece of the C++ text handling puzzle. Nothing to do with Unicode.

Wide Strings
02:18

Characters and Strings Quiz
3 questions
+
Functions
5 Lectures 13:14

What are functions and why do we need them?

Introducing Functions
02:22

A note on function return types. What if a function doesn't return anything?

Return Type
01:30

The function that gets called first in every executable.

Application Entry Point
02:21

How to get a pointer to a function?

Function Pointers and std::function
02:12

The pinnacle of human achievment: lambda functions.

Lambda Functions
04:49
+
User Defined Types
5 Lectures 12:44

Learn how to make neat aliases for existing types.

Type Definitions
01:48

Learn how to represent categorical variables using enumerations.

Enumeration
03:05

A single area of memory can be treated simultaneously as different data types. This is what unions are for.

Union
01:19

Finally, a custom data type with members!

Struct
04:39

A note that UDTs can contain other UDTs ad infinitum.

Mixing User-Defined Types
01:53
+
Object-Oriented Programming
9 Lectures 18:14

We've met member variables (a.k.a. fields) before, but what are member functions?

Fields and Member Functions
02:17

A class is almost the same as a struct. No, really!

Classes
02:06

A constructor is a member function that gets called when the class is, err, constructed.

Constructor
03:03

Called when the class is destroyed, this is the exact opposite of a constructor.

Destructor
01:18

The ability to automagically acquire another class' fields and functions. No pillaging required.

Inheritance
02:07

An ability to inherit from several classes! You don't get this in C# or Java!

Multiple Inheritance
00:51

A way for classes to hide their members from the outside world.

Encapsulation
03:30

A Polymorph spell turns a human into a frog. In C++, polymorphism lets derived classes be treated as their parents.

Polymorphism
01:36

A useful operator for figuring out if an object is of a particular type.

dynamic_cast
01:26
About the Instructor
Dmitri Nesteruk
4.5 Average rating
844 Reviews
9,097 Students
13 Courses
Quant Finance • Algotrading • Software/Hardware Engineering

Dmitri Nesteruk is a developer, speaker and podcaster. His interests lie in software development and integration practices in the areas of computation, quantitative finance and algorithmic trading. His technological interests include C#, F# and C++ programming as well high-performance computing using technologies such as CUDA. He has been a C# MVP since 2009.

Dmitri is a graduate of University of Southampton (B.Sc. Computer Science) where he currently holds a position as a Visiting Researcher. He is also an instructor on an online intro-level Quantitative Finance course, and has also made online video courses on CUDA, MATLAB, D, the Boost libraries and other topics.