Topics in Advanced C++
Quick Review
Classes and objects
Operator overloading
Dynamic memory allocation
Inheritance
Detailed example
Memory Organization Issues
The stack and how it works
static and extern storage
The heap
Tips for efficient memory usage
Templates
Container classes using templates
Iterators
Other uses for templates
The Standard Template Library (STL)
Exception Handling
Traditional error handling techniques
Using try, throw and catch
Stack unwinding
Exception handling problems
Advanced Operator Overloading
Conversions between abstract types
Overloading new and delete for memory management
Overloading [ ], ( )
Advanced Pointers in C++
Pointers to pointers, arrays of pointers
Pointers to member functions
Using void pointers
Smart pointers
Issues in Inheritance
Good vs. bad inheritance
Public and private inheritance
Different types of composition
Virtual base classes
Design issues in multiple inheritance
Alternatives to multiple inheritance
Initialization of base classes
Debugging Techniques for C++
Debugging principles
Preprocessor directives
Using assert( )
Examples of C++ errors
Tools for debugging
Improving C++ Code
Passing arguments to functions
Returning values from functions
Initializer lists
Improving loops
Portability
|