Learn Advanced C++ Programming

Discover intermediate to advanced C++, including C++ 11's fantastic additions to the C++ standard.
4.5 (337 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.
2,680 students enrolled Bestselling in C++
Instructed by John Purcell IT & Software / Other
$19
$35
46% off
Take This Course
  • Lectures 104
  • Length 15 hours
  • Skill Level Intermediate Level
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 10/2015 English Closed captions available

Course 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.

What are the requirements?

  • You will need a grasp of basic C++, together with a C++ compiler.

What am I going to get from this course?

  • Develop complex C++ applications
  • Understand C++ 11
  • Be in a position to apply for jobs requiring good C++ knowledge

What 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

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
Introduction
Preview
03:15
Section 2: Exceptions
Exceptions Basics
Preview
13:56
Standard Exceptions
Preview
07:06
Custom Exceptions
Preview
07:41
Exception Catching Order
Preview
07:23
Section 3: Files
Writing Text Files
Preview
06:35
Reading Text Files
Preview
07:08
Parsing Text Files
Preview
12:12
Structs and Padding
Preview
07:57
Reading and Writing Binary Files
Preview
13:07
Section 4: The Standard Template Library
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
Section 5: Operator Overloading
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
Section 6: Template Classes and Functions
Templates - An Important Note
04:01
Template Classes
08:27
Template Functions
04:21
Template Functions and Type Inference
06:37
Section 7: Passing Functions to Functions
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
Section 8: C++ 11's Amazing New Features
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
Section 9: About GUI Programming in C++
GUI Programming Overview
11:16
Section 10: A Project: Drawing Fractal Images
Source Code
Preview
Article
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

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

John Purcell, 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. I now live in the beautiful city of Budapest, Hungary, from where I run the website Cave of Programming.

Ready to start learning?
Take This Course