







 |
|
 The Object
Technology Company
Programming in C++ A
Practical Introduction to the C++ language
Duration: 4 days
Class size: Up to 12 attendees.
Prerequisites: One year of programming experience. Familiarity with
'C' syntax.
Who should take this course?
System designers, programmer analysts and software engineers.
What will you gain?
- An understanding of how to program in C++. The ability to use C++
constructs correctly. The ability to read and follow C++ code.
- An insight into the power and pitfalls of the C++ language.
- An awareness of some major implementation trade-offs in using the language.
Course contents:
- Introduction
- The C++ environment
Motivational sample program in C and C++.
Exploration of key differences. C++ program structure and development process.
Basic elements of reading and writing in C++.
Lab: Compile and run first C++ program. Deliberately introduce
some common errors and explore the error messages.
- Classes
What is a class? Class declaration. Instances and classes. Meaning of
private and public. Static members.
Lab: Create a simple program in C++. Usage of member variables,
cout and cin.
- Member Functions
Need for member functions. Declaration vs. definition. Function
argument defaulting. Inline functions. Scopes in C++. The scope resolution
operator. Function overloading. Static functions.
Lab: Use of member functions, including defaulted arguments,
overloading, and scope resolution.
- Constructors and Destructors
Rationale for constructors and destructors. Constructor syntax.
Overloaded constructors. Initialization vs. assignment. Initialization syntax.
Default constructors, when are they required. Classes containing other objects
initialization and rules.
Lab: Using constructors, overloading constructors, class
containing another object, initialization.
- Inheritance
Inheritance rationale, motivational example. C++ inheritance syntax.
Constructors and inheritance. Initializing the base lass. Similarities in
syntax between contained object initialization and base class initialization.
The 'protected' keyword. Access levels and access transmission. Types of
derivation. Multiple inheritance, usage, and problems. Syntax of multiple
inheritance. Virtual base classes, issues and resolutions.
Lab: Using public and private inheritance. Default constructors
when base classes do not have default constructors. Function hiding vs.
overriding. Multiple inheritance and ambiguity resolution.
- Dynamic Binding
Motivation for dynamic binding. When to use polymorphism. C++ syntax
for polymorphism. Virtual and inline. Access widening due to polymorphism.
Implementation of polymorphism.
Lab: Applying polymorphism. Differences between virtual and
non-virtual functions. Virtuals and in-lines.
- C++ Miscellany
Topics of general importance in C++, although not specific to OO
programming - consts and references, const member functions and good practice.
References are not pointers - comparison. Copy constructor and assignment
operator - when they must be explicitly defined. Operator overloading. Cast
operators and their usage. Overloading ostream. Lab:
Converting existing functions to use const and reference. Defining assignment
operators and copy constructors. Using cast operators. Overloading to permit
user-defined class to be written out using cout.
- Templates
Need for parameterized types. Examples of
parameterization in Approach to parameterization in C++. Template classes and
functions. Template rules. Special casing functions that do not fit the
template.
Lab: Creating and using template classes.
- Conclusion
Review of topics covered. Levels of usage of C++. Moving to C++ - do's
and don'ts. References and suggested reading.
Course Activities:
Programming in C++ provides a balanced combination of theory and practice.
As with all of Pantheon's courses, lectures are immediately reinforced by
industrial-strength labs. The lectures provide the semantic background, while
the labs clarify the syntactic implications through practical usage. Sample
solutions are provided for all the labs.

Registration |
Calendar | Curriculum
| After Hours | Forms
| Schedules/Pricing
Copyright© Pantheon Systems, Inc. All
rights reserved. |