Intermediate C++ Programming
Course Description
This 5 day course broadens the skills of a C++ language programmer by examining sophisticated C++ concepts such as templates, exceptions, memory management, advanced inheritance issues, disambiguation of overloaded functions, private and protected inheritance, binary I/O and class libraries.
5 days
Contact us for pricing
Prerequisites
Students should have completed an introductory C++ programming course or has had equivalent knowledge.What you should already know – A Review
Rationale for a New Programming LanguageThe Language of Object-Orientation
A Typical C++ Class
Issues Regarding Member Functions vs. Non-Member Functions
friend or non-friend
Functions Returning References
Relationships
Initialization Lists
Inheritance in C++
Access Levels
Simple C++ I/O
The Many Uses of const
Parameterized Types - Templates
TemplatesOverloading Functions
Template Functions
Specializing a Template Function
Disambiguation under Specialization
Template Classes
Instantiating a Template Class Object
Rules for Template Classes
A Non-Member Function with a Template Argument
Friends of Template Classes
Templates with Multiple Type Parameters
Relationships of All Kinds
Uses of Member Initialization ListsInitialization Lists under Composition
Initialization Lists under Inheritance
Efficiency
Dynamic Memory Allocation
operator= and Composition
Constructors and Composition
What is Not Inherited?
Summary - Constructors and operator=
Public Inheritance
virtual Functions
A Shape Class Hierarchy
Polymorphism
Pure Virtual Functions
Abstract Base Classes
Private Inheritance
"Using" Relationships
Associations
Multiple Inheritance
Multiple InheritanceAmbiguities
virtual Base Classes
The Dominance Rule
Multiple Inheritance and Composition
operator=
Data Structures
IntroductionA Simple List
Layering Type-safe Classes Upon List
A Template List Class
Iterators
A Template Iterator
Stack and Queue Classes
Templates and Inheritance
Function Pointers
Why Have Function Pointers?Passing Functions as Arguments
Registering Functions
Function Pointers in C++
Callback Functions
A Class with a Callback Object
Registration of Exception Handlers
Exceptions
What Are Exceptions?Traditional Approaches to Error Handling
try, catch, and throw
A Simple Exception Handler
Multiple catch Blocks
The Exception Specification List
Re-throwing an Exception
Cleanup
Exception Matching
Inheritance and Exceptions
Resource Allocation
Constructors and Exceptions
Destructors and Exceptions
Catch by Reference
The C++ Standard Template Library
IntroductionThe Standard Template Library
Design Goals
STL Components
Iterators
vector
list
set
map
find
merge
accumulate
Adaptors
Disambiguation
Conversionint Conversion
float and double Conversions
Arithmetic and Pointer Conversion
Inheritance Based Conversion
Overloaded Functions
Exact Match
Match with Promotion
Match with Standard Conversion
User Defined Conversion
Constructors as Conversion Operators
Ambiguities
10: I/O
IntroductionManipulators
Writing Your Own Manipulators
Overloading the I/O Operators
Disk Files
Reading and Writing Objects
Internal Transmission of Data
A Spell Checker
Handling Streams in Constructors and Destructors
Treating a File as an Array
Miscellaneous Topics
NamespacesReference Counts
RTTI
Casts
Having a Limited Number of Objects
Smart Pointers
C++