| Course Duration
Upon
completion of the course the delegate should be able to:
Write,
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
polymorphism.
Intended Audience
This
course is designed for experienced C programmers that need to write or
maintain object-oriented C++ programs.
Prerequisites
It
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 Format
The
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. |
|
Course Content
Fundamentals
Coverage of some features that may be unfamiliar to some C programmers
and some basic differences between C and C++.
Classes
Object-orientation and classes, encapsulation, automatic construction,
copying and conversions.
Strings
and Vectors
Coverage of two fundamental classes from the standard library that
will be used throughout the course.
Class
Construction
Defining constructors and using member initialization lists. Issues of
copy construction. Using constructors as converters.
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, lvalue
operators, copy assignment.
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.
Streams
Working with the Standard Streams; file streams, manipulators, string
streams.
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
Topics
Overview of some advanced features; exception handling, namespaces,
multiple inheritance, smart pointers, template functions, extending
the STL, function objects. |