What are the requirements?
Students should have an understanding of programming - concepts such as variables, loops and if-else statements will not be explained
What is the target audience?
Yep! Java and C# programmers - who understand Object Oriented Programming, but are new to C++
Yep! Folks with prior programming experience in C. No prior object oriented programming experience is needed
Like a gruff uncle, C++ seems intimidating, when its just being helpful. These 75 examples will help you understand that.
Let's parse that.
C++ seems intimidating because all too often, what you see is not what you get.
Usually, that's because C++ is trying to help you, but you don't realise that. C++ is incredibly deep, and it sometimes struggles to get you - the programmer - to understand what it's saying
These 75 examples will help. Each is self-contained, has its source code attached, and gets across a specific C++ use-case. Each example is simple, but not simplistic.
Moving to C++ from C: If you are a C programmer, this section will run through what you need to know in order to move seamlessly to C++.
Objects, Classes and Object-Oriented Programming: Access modifiers, classes, objects, the this pointer, new/delete and dynamic memory allocation gotchas
Operator overloading is a particularly complicated topic - C++ is virtually alone in the ubiquity of overloaded operators. Make sure this doesn't trip you up. Also go deep into the workings of const, static and friend
Inheritance in C++ is considerably more complicated than in Java, mostly because of multiple inheritance, and because of the co-existence of both virtual and non-virtual methods.
Templates are a classic generic programming technique that were revolutionary when first added to C++. Understand template functions and classes, as well as template specializations.
STL - the Standard Template Library - is incredibly powerful. Get a good sense of collections, iterators and algorithms - the major components of the STL
C++ casts are quite different than C-casts. Understand const_cast, static_cast and dynamic_cast, as well as Real Time Type Identification (RTTI), and the manner in which explicit conversions can be performed using static_cast
Exceptions and exception handling in C++
Goal of Course
Harness the full power of C++ without being intimidated by the language's complexities
Use inheritance, operator overloading, templates, STL and all major C++ language features