SoftMoore
Consulting

Object-Oriented Programming With C++

Home Resources Feedback Search Contents

 

Training
Consulting
Rates

Get Java Now

Object-Oriented Programming With C++

Course Variations:
Several versions of this course are available, depending on the backgrounds of the course participants. The one described below is for software developers with C programming experience but without prior knowledge of C++. An alternate version is available for software developers who lack the C programming experience, and a third, more advanced version is available for those with introductory knowledge of C++.
 
Description:
This intensive SoftMoore course provides a solid foundation for object-oriented programming using the C++ programming language. Assuming a basic familiarity with the C programming language and classical procedural programming techniques, the course guides participants into an object-oriented mindset for developing software. The major emphasis of this course is on the most effective use of the advanced language features, presented in the context of modern software engineering themes of modularity, abstraction, information hiding, and reusability. Fundamental principles of object-oriented design and programming are stressed while covering the latest ANSI/ISO language enhancements. The course uses a hands-on workshop approach with numerous examples and programming exercises to illustrate and reinforce basic concepts. Lectures are interspersed with programming exercises which require participants to design, compile, link, and test complete C++ programs.
 
Audience:
This workshop is designed for software development professionals who are planning to move to C++ for developing object-oriented applications. This is not a gentle overview of C++ for the casual programmer or non-technical manager. Participants are expected to have C programming experience.
 
Recommended Duration:
5 Days
 
Course Materials:
Each participant will receive a complete set of all course materials including course notes, programming exercises and solutions, and a copy of a current C++ programming textbook.
 

Course Outline

C++ Language Fundamentals
Reference Types
Dynamic Memory Allocation in C++
The New C++ Casting Operators
Basic Input/Output in C++
 
Classes: User-Defined Types
Class Members
Friends
Constructors and Destructors
Inline Member Functions
The this Pointer in Member Functions
Function/Operator Overloading
Assignment versus Initialization
Static Class Members
Container Classes and Iterators
 
Object-Oriented Programming and C++
Derived Classes and Inheritance
Conversions Under Derivation
Class Hierarchies
Virtual Functions
Polymorphism
Pure Virtual Functions
Abstract Classes
 
The C++ I/O Library
Streams
I/O Operators
Overloading I/O Operators
Formatting
String Streams
Binary I/O
 
Templates: Parameterized Classes
Declaring Class Templates
Class Template Instantiation
Function Templates
Specialized Implementations
 
The Standard Template Library
Container Classes
Fundamental Algorithms
Iterator Categories
 
Object-Oriented Design for C++
OO Design versus OO Programming
Identifying Objects and Classes
Relationships Between Objects
Steps in Object-Oriented Design
A Small Case Study
Classification of Operations
Problem-Space versus Solution-Space
 
Exceptions and Error Handling
Dealing with Run-Time Errors
Declaring Exceptions in C++
Exception Handlers
Propagation of Exceptions
Exception Specifications
Predefined Exceptions
 
Class Design
Designing a Class with Operators
Handles and Reference Counts
Case Study: A String Class
Functions as Objects
 
Run-Time Type Identification
The typeid Operator
The Dynamic Cast Operator
 
Namespaces
Defining Namespaces
Namespace Aliases
The Using Directive
The Using Declaration
 
Issues in Memory Management
Overloading new and delete
Placement Syntax
Operators new[] and delete[]
Memory Management Guidelines
Smart Pointers
Overloading Operators * and ->
Smart Pointers and Inheritance
The Class auto_ptr
 

 

Send mail to jmoore@softmoore.com with questions or comments about this web site.
Last modified: June 1, 2004