ATI's Advanced C++ Programming Course
 


Summary

This 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. 

Prerequisite

Students should have completed the Introduction to C++ Programming course or have equivalent knowledge.

Who Should Attend

Anybody who has been programming in C++ and wishes to enhance their knowledge of the language.

Benefits of Attendance

Students will be able to

Course Outline

Chapter 1:   What You Should Already Know -- A Review

  1. Rationale for a new programming paradigm 
  2. The language of Object Orientation 
  3. A typical C++ class - a string class 
  4. Issues regarding member functions 
    1. member vs non member function 
    2. friend vs non friend 
    3. functions - returning references 
    4. Why does operator= return a reference? 
  5. Relationships 
  6. Simple C++ I/O 
  7. The uses of const 
Chapter 2:   Paramegtrized Types -- Templates 
  1. Templates 
  2. Overloading functions 
  3. Template functions 
  4. Specializing a template function 
  5. Disambiguation under specialization 
  6. Template classes 
  7. An array template class 
  8. Instantiating a template class object 
  9. Rules for templates 
  10. Non member function w/ a template argument 
  11. Friends of template classes 
  12. Templates with multiple type parameters 
  13. Comments regarding templates 
Chapter 3:   Relationships )f All Kinds 
  1. Uses of Member Initialization Lists 
  2. Initialization lists under composition 
  3. Initialization lists under inheritance 
  4. Initialization lists w/ Multiple Inheritance (MI) 
  5. Initialization with MI and composition 
  6. Efficiency 
  7. operator= and composition 
  8. Constructors and composition 
  9. What is not inherited? 
  10. operator=, construction, and inheritance 
  11. Designing for inheritance 
  12. Public inheritance 
    1. Simple inheritance 
    2. Virtual functions 
    3. A shape class hierarchy 
    4. Polymorphism 
    5. Pure virtual functions 
    6. Virtual destructors 
    7. Abstract base classes 
  13. Private inheritance 
  14. Private inheritance vs composition 
  15. Using relationships 
  16. Associations 
Chapter 4:   Multiple Inheritance 
  1. Multiple inheritance 
  2. Ambiguities 
  3. Removing ambiguities 
  4. virtual base classes 
  5. virtual base classes and the dominance rule 
  6. Member initialization lists with MI 
  7. operator= and MI 
  8. Designing for inheritance 
Chapter 5:   Data Structures 
  1. Introduction 
  2. A simple List 
  3. Implementation of the list functions 
  4. Layering type safe classes upon List 
  5. A template List class 
  6. Iterators 
  7. A template iterator 
  8. Stack and Queue classes 
  9. A derived template array class 
Chapter 6:   Function Pointers 
  1. Why have function pointers? 
  2. Passing functions as arguments 
  3. Registering functions 
  4. Callback functions 
  5. A class with a callback object 
  6. Registration of exceptions handlers 
Chapter 7:   Exceptions 
  1. What are exceptions? 
  2. Traditional approaches to error handling 
  3. try, catch, and throw 
  4. A simple exception handler 
  5. Multiple catch blocks 
  6. The exception specification list 
  7. Rethrowing an exception 
  8. Cleanup 
  9. Exception matching 
  10. Inheritance and exceptions 
  11. Resource allocation 
  12. Constructors and exceptions 
  13. Destructors and exceptions 
  14. Catch by reference 
  15. Standard exceptions 
Chapter 8:   The C++ Standard template Library 
  1. History and evolution 
  2. New features 
  3. The Standard Template Library 
  4. STL Components 
  5. Iterators 
  6. Example: vector 
  7. Example: list 
  8. Example: set 
  9. Example: map 
  10. Example: find 
  11. Example: merge 
  12. Example: accumulate 
  13. Function objects 
  14. Adaptors 
Chapter 9:   Disambiguation 
  1. Conversion 
  2. int Conversions 
  3. float 
  4. Arithmetic and pointer conversions 
  5. Inheritance based conversion 
  6. Overloaded functions 
  7. Exact match 
  8. Match with promotion 
  9. Match with standard conversion 
  10. User defined conversion 
  11. Constructors as conversion operators 
  12. Ambiguities 
Chapter 10:   File I/O 
  1. Introduction 
  2. Error checking 
  3. Overloading << and >> 
  4. Formatted I/O 
  5. Disk files 
  6. Examples of seekg, tellg, and close 
  7. Reading and writing objects to the disk 
  8. Internal transmission of data 
  9. A larger I/O example: Spell checker 
  10. Treating a file as an array 
Chapter 11:   Miscellaneous Topics 
  1. New features in the standard C++ language 
  2. Namespaces 
  3. Use counts 
  4. Run Time Type Identification 
  5. New casts 
  6. Overloading operator new and delete 
  7. How virtual functions are implemented 
  8. Having a limited number of objects 
  9. Smart pointers 
  10. Back to Home


Return to ATI's Schedule

Return to ATI Homepage





ATICourses - Applied Technology Institute Training Seminars ·
349 Berkshire Drive Riva Maryland 21140-1433
Phone: 410-596-8805 or toll free 1-888-501-2100; Fax 410-956-5785
E-mail: ati@ATIcourses.com
Copyright 1999-2007 ATI - Applied Technology Institute Training Seminars - All Rights reserved