C++ Training Course

The Graphics Network

Training and Development for Windows, Linux and the Web

01285 713297 info@tgn.co.uk


C++ Training

This 5 day course covers the C++ language including recent features from the C++11 and C++14 updates. We have been using and training C++ since 1992 and can offer a wealth of experience for your benefit. The course covers the C++ language without assuming a particular target environment although we can also offer modules on particular areas such as MFC or Linux programming if required. The course includes several standard projects and a large number of optional exercises. The outline below is an example, as we would vary the content depending on your prior experience.

The 5 day course costs £3450 in total for up to 6 students, plus VAT and the instructor's reasonable expenses. Each student beyond 6 would cost £20 for the additional course materials. If you are interested in this course, please contact us by email at enquiries@tgn.co.uk or by phone on +44 (0)1285 713297.

Course Outline:

Getting Started

Writing, building and running a C++ Program. Language structure. The main function. Basic stream and console input/output. Declaring and Initializing variables. Fundamental data types. Strings.

Structured Programming

Control flow, loops and conditions. The for loop. Do and while. If and else. The conditional expression. Functions and argument passing. Argument passing by value and reference. Predeclarations and prototypes. Using header files. The switch statement. Variable scope - local, static, global. Variable lifetimes. Using namespaces. Memory management. Casting and cast types.

Object Orientation

What is object orientation? Defining classes and creating objects. Classes vs data structures. Object oriented design concepts.

Using Objects

Encapsulation and data hiding. Constructors and destructors. Default constructors and initialization. Class definition and implementation. Inheritance and polymorphism. Overriding. Constructing applications using objects. Class examples. Practical polymorphism. Virtual functions. Abstract base classes. Run time type information and dynamic_cast. Constant and static members. Using 'this'. Calling the base class constructor explicitly. Friends. Multiple inheritance and virtual base classes.

Dynamic Objects

Pointers and the use of new and delete. Arrays and collections. Safe use of pointers. Pointers and references. Range-based for loop - 'for each'.

Operator Overloading

Defining an operator function. Some rules. Mixing types. Implementing a postfix operator. Type conversion operators. Copy constructors and the assignment operator. Function objects and functors. Indexers.

Streams

The I/O stream library. Inserters and extractors. Error handling. Using exceptions. Using I/O streams with files. Flags and manipulators. Formatting.

Templates

Function templates. Type safety. Using multiple parameter types. Class templates. Using template classes. Using constants.

Smart Pointers

What is a smart pointer?. Smart pointers vs conventional pointers. Shared pointers. Unique pointers. Weak pointers. dynamic_pointer_cast. Alternatives outside the standard library.

The Standard Template Library

Collection classes. Vector. Reserving capacity. Iterators. Using auto for complex types. Stream iterators. Algorithms. Predicates. Using member functions in algorithms. Sorting. Collection types. Sets, maps and find. Threads and multitasking.

Exception Handling

Overview of exception handling. Using traditional exception handling. Using the Standard Library exception class. Throwing and catching. bad_alloc. Overloading new and delete.

Additional and Historic Features

Lambdas. Structs, unions and typedef. More about main. Logical and bitwise operators. Conditional compilation and the pre-processor. Compatibility with C. More streams. Ancient features you may still meet.