completion of the course the delegate should be able to:
maintain and debug C++ programs, use dynamic memory, make effective
use of the Standard Library including the Standard Template Library,
write object-oriented code using encapsulation, inheritance and
course is designed for experienced C programmers that need to write or
maintain object-oriented C++ programs.
is assumed that anyone attending this course is experienced in the C
programming language. They should be familiar with all the basic
constructs of C and in particular with structures, pointers and the
use of dynamic memory.
course is spread over a four-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.
Coverage of some features that may be unfamiliar to some C programmers
and some basic differences between C and C++.
Object-orientation and classes, encapsulation, automatic construction,
copying and conversions.
Coverage of two fundamental classes from the standard library that
will be used throughout the course.
Defining constructors and using member initialization lists. Issues of
copy construction. Using constructors as converters.
Accessing the heap or freestore with new and delete, dynamic arrays,
Aggregation and association, delegation, managing custody of dynamic
memory, copying custodial objects.
Class operators, overloading with globals or members, lvalue
operators, copy assignment.
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.
Using Iterators to access the elements of Standard Template Library
containers, introducing the standard algorithms.
Working with the Standard Streams; file streams, manipulators, string
Object-orientation and inheritance. Creating and using derived
classes, vertical delegation, standard conversions.
Declaring and using virtual functions and the need for virtual
destructors. Pure virtual functions and abstract classes.
Overview of some advanced features; exception handling, namespaces,
multiple inheritance, smart pointers, template functions, extending
the STL, function objects.