| Course Duration 5
Days
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 programmers that need to write or
maintain object-oriented C++ programs.
Prerequisites
It
is assumed that anyone attending this course is experienced in a
block-structured language such as Pascal, modern variants of Basic,
Smalltalk, Ada etc. They 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
Course Format
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. |
|
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, 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, lvalue
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. |