Learn Advanced C++ Programming
4.4 (1,122 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.
8,275 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Learn Advanced C++ Programming to your Wishlist.

Add to Wishlist

Learn Advanced C++ Programming

Discover intermediate to advanced C++, including C++ 11's fantastic additions to the C++ standard.
Best Selling
4.4 (1,122 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.
8,275 students enrolled
Created by John Purcell
Last updated 6/2016
English
English
Curiosity Sale
Current price: $10 Original price: $35 Discount: 71% off
30-Day Money-Back Guarantee
Includes:
  • 15 hours on-demand video
  • 1 Article
  • 2 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • Develop complex C++ applications
  • Understand C++ 11
  • Be in a position to apply for jobs requiring good C++ knowledge
View Curriculum
Requirements
  • You will need a grasp of basic C++, together with a C++ compiler.
Description

This course will take you from a basic knowledge of C++ to using more advanced features of the language. This course is for you if you want to deepen your basic knowledge of C++, you want to learn C++ 11 features, or you've taken my free beginners' C++ course and you're looking for the next step.

We'll start with a look at C++ file handling and move through STL, template classes, operator overloading, lambda expressions, move constructors and much more besides.

At the end of the course I'll show you how to create a program that generates fractal images, using a a few of the language features we've seen in the course and giving you a great work out with smart pointers and arrays.

I'll give you exercises throughout the course, ranging from easy near the start, to quite tricky (but optional!) near the end of the course.

Who is the target audience?
  • This course is for anyone with a basic knowledge of C++ who wants to increase their knowledege
  • Suitable for anyone who knows C++ 98 and wants to learn C++ 11 features
Students Who Viewed This Course Also Viewed
Curriculum For This Course
104 Lectures
15:09:55
+
Introduction
1 Lecture 03:15
+
The Standard Template Library
12 Lectures 02:21:22
Vectors
10:57

Vectors and Memory
13:36

Two-Dimensional Vectors
07:26

Lists
12:53

Maps
13:48

Custom Objects as Map Values
08:44

Custom Objects as Map Keys
14:02

Multimaps
10:53

Sets
15:20

Stacks and Queues
16:48

Sorting Vectors, Deque and Friend
10:23

STL Complex Data Types
06:32
+
Operator Overloading
6 Lectures 01:09:53
Overloading the Assignment Operator
16:04

Printing - Overloading Left Bit Shift
11:21

A Complex Number Class
17:44

Overloading Plus
11:52

Overloading Equality Test
06:48

Overloading the Dereference Operator
06:04
+
Template Classes and Functions
4 Lectures 23:26
Templates - An Important Note
04:01

Template Classes
08:27

Template Functions
04:21

Template Functions and Type Inference
06:37
+
Passing Functions to Functions
5 Lectures 56:38
Function Pointers
09:55

Using Function Pointers
08:11

Object Slicing and Polymorphism
11:56

Abstract Classes and Pure Virtual Functions
12:17

Functors
14:19
+
C++ 11's Amazing New Features
31 Lectures 04:20:41
Decltype, Typeid and Name Mangling
10:40

The Auto Keyword
08:30

Range-Based Loops
06:00

Nested Template Classes
15:10

A Ring Buffer Class
09:55

Making Classes Iterable
13:38

Initialization in C++ 98
06:38

Initialization in C++ 11
11:09

Initializer Lists
06:25

Object Initialization, Default and Delete
10:11

Introducing Lambda Expressions
08:28

Lambda Parameters and Return Types
09:10

Lambda Capture Expressions
08:23

Capturing this With Lambdas
04:48

The Standard Function Type
12:25

Mutable Lambdas
01:31

Delegating Constructors
06:11

Elision and Optimization.avi
10:06

Constructors and Memory
08:07

Rvalues and LValues
07:22

LValue References
05:31

Rvalue References
06:24

Move Constructors
05:07

Move Assignment Operators
05:53

Static Casts
10:32

Dynamic Cast
04:50

Reinterpret Cast
03:18

Perfect Forwarding
08:13

Bind
16:16

Unique Pointers
12:10

Shared Pointers
07:40
+
About GUI Programming in C++
1 Lecture 11:16
GUI Programming Overview
11:16
+
A Project: Drawing Fractal Images
34 Lectures 04:14:06

Fractal Creator - Hello World
04:41

Bitmap File Headers
10:51

Bitmap Info Headers
05:23

A Bitmap Class
08:47

Bitmap Memory
04:26

Bitmap Header Values
06:58

Writing a Bitmap
11:08

Setting Bitmap Pixels
11:09

Scaling
09:48

A Mandelbrot Class
05:35

The Fractal Algorithm
16:45

Improving the Image
06:11

The Colour Histogram
07:04

Validating the Histogram
06:22

Eliminating Max Iterations
03:18

Storing the Iterations
02:52

Using the Histogram
09:17

Colour Transforms
04:04

A Zoom Class
05:30

The Zoom List Class
07:45

Centering and Scaling
11:01

Applying the Zoom
05:40

Zooming In
04:27

Reorganising Main
06:13

Implementing FractalCreator
14:13

An RGB Class
10:13

Using the RGB Class
06:25

Specifying Color Ranges
08:01

Calculating Range Totals
11:34

Checking the Range Totals
02:46

Getting the Pixel Range (updated)
11:23

Range-Based Coloring
07:54

More Exercises
06:14
1 More Section
About the Instructor
John Purcell
4.4 Average rating
61,291 Reviews
966,697 Students
12 Courses
Software Development Trainer

After working as a software developer and contractor for over 14 years for a whole bunch of companies including CSC, Proquest, SPSS and AT&T in the UK and Netherlands, I decided to work full-time as a private software trainer. After spending four years in the beautiful city of Budapest, Hungary and a year in Berlin, I now live in my home town of Derby, UK.