C++
|
Please contact us to discuss private course dates and locations |
Course Overview
This course is designed for experienced programmers that need to write or maintain object-oriented C++ programs.
The C++ programming language is a widely used powerful tool for producing modern object-oriented programs. This course guides experienced programmers through the complexities of writing and maintaining object-oriented programs in C++. It is fully up to date with the latest ISO standard for C++ and includes coverage of the important Standard Template Library.
The course is spread over a five-day period and comprises of instructor-led presentations and practical hands-on exercises. The practical sessions are structured to give the delegates the opportunity to put into practice all of the language constructs covered during the instructor-led sessions. The delegates will be able to take away with them copies of all the code they have written, along with sample solutions and demonstration code.
Prerequisites
- It is assumed that delegates attending this course are experienced in a block-structured language such as Pascal, modern variants of Basic, Smalltalk, Ada etc.
- Delegates should be familiar with concepts such as functions or procedures, control flow, arrays, and structures or records.
- Knowledge of C is neither assumed nor required.
Objectives
What's Included
- 1 delegate per computer
- Relaxed refreshment area at our training venues
- Lunch and refreshments when training is delivered at our training venue
- Comprehensive course manual and exercises
Course Content
C++ Program Components
Basic program components; functions, statements, file inclusion, input and output, keywords, variables, operators.
Data and Operators
Identifiers, fundamental data types and their operators, constants, operator precedence, conversions, casting and scope
Structured Data Types
Enumerations, data structures, aggregation, Standard Library string class
Control Flow
Boolean operators, conditional selection, iteration
Functions
Functional modularity, passing data in and out of functions, pass by value and reference, member functions, optimization with inline
Arrays and Vectors
Basic containers; arrays and the standard template library vector class, access through subscripting and member functions, C type strings
Classes
Object-orientation and classes, encapsulation, automatic construction, copying and conversions
Pointers
Concept of indirection, null pointers, using pointers with functions and arrays, pointer arithmetic
Dynamic Memory
Accessing the heap or freestore with new and delete, dynamic arrays, automatic destruction
Object Relationships
Aggregation and association, delegation, managing custody of dynamic memory, copying custodial objects
Operator Overloading
Class operators, overloading with globals or members, value operators, copy assignment
Streams
Working with the Standard Streams; file streams, manipulators, string streams
STL Containers
Introducing templates and the main Standard Template Library container classes; vector, deque, list, set and map
Guidelines on choosing the right container for the job
Iterators
Using Iterators to access the elements of Standard Template Library containers, introducing the standard algorithms
Inheritance
Object-orientation and inheritance
Creating and using derived classes, vertical delegation, standard conversions
Polymorphism
Declaring and using virtual functions and the need for virtual destructors
Pure virtual functions and abstract classes
Advanced Features
Overview of some advanced features; exception handling, namespaces, multiple inheritance, smart pointers, template functions, extending the STL