Advanced C++ Programming
Course Features
Course Details
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
course outline:
1.Introduction
1.Introduction
Exceptions Basics
Standard Exceptions
Custom Exceptions
Exception Catching Order
2.Exceptions
Writing Text Files
Reading Text Files
Parsing Text Files
Structs and Padding
Reading and Writing Binary Files
3.Files
Vectors
Vectors and Memory
Two-Dimensional Vectors
Lists
Maps
Custom Objects as Map Values
Custom Objects as Map Keys
Multimaps
Sets
Stacks and Queues
Sorting Vectors, Deque and Friend
STL Complex Data Types
4.The Standard Template Library
Overloading the Assignment Operator
Printing - Overloading Left Bit Shift
A Complex Number Class
Overloading Plus
Overloading Equality Test
Overloading the Dereference Operator
5.Operator Overloading
Templates - An Important Note
Template Classes
Template Functions
Template Functions and Type Inference
6.Passing Functions to Functions
Function Pointers
Using Function Pointers
Object Slicing and Polymorphism
Abstract Classes and Pure Virtual Functions
Functors
7.Template Classes and Functions
Templates - An Important Note
Template Classes
Template Functions
Template Functions and Type Inference
8.C++ 11's Amazing New Features
Decltype, Typeid and Name Mangling
The Auto Keyword
Range-Based Loops
Nested Template Classes
A Ring Buffer Class
Making Classes Iterable
Initialization in C++ 98
Initialization in C++ 11
Initializer Lists
Object Initialization, Default and Delete
Introducing Lambda Expressions
Lambda Parameters and Return Types
Lambda Capture Expressions
Capturing this With Lambdas
The Standard Function Type
Mutable Lambdas
Delegating Constructors
Elision and Optimization.avi
Constructors and Memory
Rvalues and LValues
LValue References
Rvalue References
Move Constructors
Move Assignment Operators
Static Casts
Dynamic Cast
Reinterpret Cast
Perfect Forwarding
Bind
Unique Pointers
Shared Pointers
9.About GUI Programming in C++
GUI Programming Overview
10.A Project: Drawing Fractal Images
Source Code
Fractal Creator - Hello World
Bitmap File Headers
Bitmap Info Headers
A Bitmap Class
Bitmap Memory
Bitmap Header Values
Writing a Bitmap
Setting Bitmap Pixels
Scaling
A Mandelbrot Class
The Fractal Algorithm
Improving the Image
The Colour Histogram
Validating the Histogram
Eliminating Max Iterations
Storing the Iterations
Using the Histogram
Colour Transforms
A Zoom Class
The Zoom List Class
Centering and Scaling
Applying the Zoom
Zooming In
Reorganising Main
Implementing FractalCreator
An RGB Class
Using the RGB Class
Specifying Color Ranges
Calculating Range Totals
Checking the Range Totals
Getting the Pixel Range (updated)
Range-Based Coloring
More Exercises
This course does not have any sections.