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

More Courses by this Instructor