Advanced C++ Programming - Detailed Course Outline
Copyright © 1992-2006 Anderson Software Group, Inc.
(return to main C++ page)
Section 1 - Templates
-
Template
Functions and Classes
-
Instantiation
-
Overloading
-
Specialization
-
Working
with Templates
-
Member
Templates
-
Using
export
-
STL (Standard
Template Library)
-
Containers
and Iterators
-
Algorithms
Section
2 - Exception Handling
-
Using
Exceptions
-
Exception
Formats
-
Exception
Specifications
-
Unexpected
Exceptions
-
Uncaught
Exceptions
-
Designing
with Exceptions
-
Exception
Hierarchies
-
Discrimination
-
Using
auto_ptr
-
Exceptions
thrown from Constructors
-
Exceptions
thrown from Destructors
-
Resource
Management
Section
3 - Class Design
-
Class
Design Topics
-
Mutable
Data Members
-
Using
explicit with Constructors
-
Member
Initialization
-
Class
Design Boilerplate
-
Copy Initialization
and Assignment
-
Modifiers
and Selectors
-
Clone
Functions
-
Composite
Templates
Section
4 - Object Storage Management
-
New and
Delete Formats
-
Nothrow
Operator new
-
Placement
Formats
-
Explicit
Destructor Calls
-
Class
Specific New and Delete
-
Overriding
Global Operators
-
Memory
Pools
-
Reference
Counts
-
Design
Approach
-
Implementation
-
Copy-on-writes
-
Modifying
Existing Classes
Section
5 - RTTI (Run Time Type Identification)
-
Why RTTI?
-
Implications
for Class Library Design
-
Controlling
Object Behaviors
-
RTTI Operators
-
dynamic_cast
-
typeid
-
type_info
Class
Section
6 - Multiple Inheritance
-
Design
Concepts
-
Member
Initialization
-
Ambiguities
-
Multiple
Inheritance Patterns
-
Distinct
Bases
-
Multiple
Inclusion
-
Virtual
Bases
Section
7 - Working with C++
-
Namespaces
-
Namespace
Definitions
-
Unnamed
Namespaces
-
Using
Directives
-
Using
Declarations
-
Namespace
Aliases
-
C++ Techniques
-
Objects
as Return Values
-
Eliminating
Temporaries
-
Virtual
Constructors
-
Smart
Pointers
-
Lvalue
and Rvalue Separation
Appendix
Bibliography |