Training Categories
Click on a link to see more about each course.
Course Outline
Dates Offered (click on the desired date to register):
This course is currently not scheduled for the near future.
C++ Programming Language
Course Number: C1
Course Description: This is an introduction to Object-Oriented programming using the C++ language. The design and implementation of programs C++ using class libraries. The participant will work with C++, writing programs during class hours, there will be programming assignments to further enhance programming skills in C++. Topics include data types, in line and overloaded functions and operators, class types and members, access and protection of members and friends, constructors and destructors, and streams.
Objectives: The participant will be able to: ·Write programs using all of the syntactic features of C++. ·Describe the principles and advantages of object-oriented programming. ·Describe the concepts of object-oriented programming. ·Use encapsulation. ·Use class libraries. ·Perform dynamic memory allocation with new and delete. ·Use default function arguments. ·Build abstract data types using classes. ·Create and use constructor and destructor functions. ·Use friend functions and friend classes. ·Describe and use Overloading. ·Use inheritance to build class hierarchies. ·Describe and use exception handling. ·Describe and use multiple inheritance. ·Describe and use I/O streams
Benefits:
Target Audience:
Prerequisites: C Programming, Advanced C Programming, and Object-Oriented Analysis/Design Overview.
Course Length: 3 or 4 days
CourseTopics:
Basic Concepts
What is an Object?
Putting Object-Oriented Design in Context
Developing O-O Designs
Information Hiding and Abstraction
Developing O-O Designs from Requirements
Identifying Classes and Operations
"Is-a" vs "Has-a"
Combining O-O and Traditional Designs
Data Types and Operations
Introduction
Numeric Types
Class complex
References
Const Qualified Types
Advantages of Object-Oriented Analysis & Design
Encapsulation Benefits
Abstraction Benefits
Inheritance Benefits
Reuseability
Procedural Programming
Functions and modules
Functional Decomposition
Functional decomposition: example
File Organization
Structured Programming
Overloading
Inline Functions
Arguments and Returns Values
Classes
Class types
Class String
Constructors
Destructors
Data Members
Static Data members
Constant Members
Function members
Operator functions
Access protection and friends
Initialization and conversion
Pointers to class members
Dynamic Storage Allocation
Recursive Data Structures
Storage Management in C++
Data Abstraction
Abstract Data Type (ADT)
Complex Numbers
Strings
Sorted Collections
Control Abstraction
Inheritance
Base and Derived Classes
Class Derivation – examples
Class Derivation and Constructors
The “is-a” Relationship
Class Hierarchies
Implicit calls
Base Constructors
Calling Ordering
Abstract base classes
Visibility
Access Control
Public Derivation
Private Derivation
Protected Members
Virtual Inheritance
Virtual Functions
Protected Members
Pure Virtual Functions
Virtual Base classes
Object Oriented Programming
Object Oriented Programming
Designing objects
Object types as modules
Dynamic object oriented style
Storage Management
General Issues
Storage Management in Constructors
Storage Management in Destructors
Operators new and delete
new _ handler
Overloading new and delete
Arrays
Class-specific new and delete
Copy Constructor X(X&)
Implicit copy semantics
Libraries
Libraries
Interface to exiting libraries
Reusable Libraries in C++
I/O and String Libraries
Files and Streams
Using Ostream and Istream
Buffered I/O
Designing a Library
Generic Libraries
Using Container Classes
Heterogeneous Classes
Handling Exceptions in Libraries