Mentor Communications

Our Courses

Our Clients

Contact Us

Home

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