C++ is undoubtedly one of the most popular programming languages for software development. It brings language enhancements and object-oriented programming support to the extremely popular language C . However, C ++ is a large and sometimes difficult language, and even with a C or object oriented background, a programmer needs to understand C ++ programming style as well as C ++ constructs to get the best out of it.
The course is written from a developers rather than an academics perspective, providing a thorough practical coverage of the language. It aims to eliminate common misconceptions and poor programming practice by teaching the features of the language and standard library that enforce good practice.
In particular the course teaches the Modern C++ approach, to deliver clear expressive and efficient code. Although C++11 and more recent additions to the language are taught throughout (including C++ 14 and 17), most of the material is useful and relevant to pre C++11 users.
This is a hands-on course with a mix of tuition and practical sessions for each technical chapter which reinforce the Modern Expressive C ++ programming techniques covered in the course. Delegates will write unit tests to verify their work as they develop a GUI based tool to support their learning.
Delegates must have solid experience of programming, with a clear understanding of variable definitions, references, implementing and calling functions and multiple source file projects. A basic understanding of Object Oriented principles is assumed. Those coming from C, C# or Java will have an advantage.
Delegates who do not meet these prerequisites are unlikely to be able to keep pace and should consider attending the Programming Foundations course first.
Experienced C++ programmers should also consider the QA course Modern Robust C++ Development.
Delegates will require a Microsoft account (signing up one is free). The instructions on how to set up a Microsoft account can be found here.
Delegates will learn how to:
Chapter 1 – Introduction
Chapter 2 – Language Overview
Chapter 3 –Variables and Functions
Chapter 4 – Collections
Chapter 5 – Types and Const Qualifiers
Chapter 6 – Foundational Design Principles
Chapter 7 – Literals and Strings
Chapter 8 – Flow Control
Chapter 9 – Header Files
Chapter 10 – Unit Testing
Chapter 11 – Iterators
Chapter 12 – Pointers
Chapter 13 – Zero-Cost Abstractions
Chapter 14 – Lambdas
Chapter 15 – Algorithms
Chapter 16 – Inline and Extern
Chapter 17 – Container Types
Chapter 18 – Type Conversions
Chapter 19 – Function Overloading
Chapter 20 – Classes
Chapter 21 – Inheritance
Chapter 22 – Polymorphism
Chapter 23 – Association