Course #:WA1080 Advanced C++ Programming Training 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. Objectives At the end of this course, students will be able to: Decide between global functions, friend functions and member functions Code their own memory management routines by overloading operators new and delete Write classes and functions with parameterized types Understand and handle exceptions in C++ programs Disambiguate data and functions using multiple inheritance Understand the difference between various kinds of inheritance Use pointers to class member functions Understand the C++ mechanism to resolve overloaded functions Topics A Review Parameterized Types - Templates Relations of All Kinds Multiple Inheritance Data Structures Function Pointers Exceptions The C++ Standard Template Library Disambiguation File I/O Miscellaneous Topics Audience Anybody who has been programming in C++ and wishes to enhance their knowledge of the language. Prerequisites Students should have completed the Introduction to C++ Programming course or have equivalent knowledge. Duration Five days. Outline of Advanced C++ Programming Training 1. What You Should Already Know - A Review Rationale for a new programming paradigm The language of Object Orientation A typical C++ class - a string class Issues regarding member functions member vs non member function friend vs non friend functions - returning references Why does operator= return a reference? Relationships Simple C++ I/O The uses of const 2. Parameterized Types - Templates Templates Overloading functions Template functions Specializing a template function Disambiguation under specialization Template classes An array template class Instantiating a template class object Rules for templates Non member function w/ a template argument Friends of template classes Templates with multiple type parameters Comments regarding templates 3. Relations of All Kinds Uses of Member Initialization Lists Initialization lists under composition Initialization lists under inheritance Initialization lists w/ Multiple Inheritance (MI) Initialization with MI and composition Efficiency operator= and composition Constructors and composition What is not inherited? operator=, construction, and inheritance Designing for inheritance Public inheritance Simple inheritance Virtual functions A shape class hierarchy Polymorphism Pure virtual functions Virtual destructors Abstract base classes Private inheritance Private inheritance vs composition Using relationships Associations 4. Multiple Inheritance Multiple inheritance Ambiguities Removing ambiguities virtual base classes virtual base classes and the dominance rule Member initialization lists with MI operator= and MI Designing for inheritance 5. Data Structures Introduction A simple List Implementation of the list functions Layering type safe classes upon List A template List class Iterators A template iterator Stack and Queue classes A derived template array class 6. Function Pointers Why have function pointers? Passing functions as arguments Registering functions Callback functions A class with a callback object Registration of exceptions handlers 7. Exceptions What are exceptions? Traditional approaches to error handling try, catch, and throw A simple exception handler Multiple catch blocks The exception specification list Rethrowing an exception Cleanup Exception matching Inheritance and exceptions Resource allocation Constructors and exceptions Destructors and exceptions Catch by reference Standard exceptions 8. The C++ Standard Template Library History and evolution New features The Standard Template Library STL Components Iterators Example: vector Example: list Example: set Example: map Example: find Example: merge Example: accumulate Function objects Adaptors 9. Disambiguation Conversion int Conversions float Arithmetic and pointer conversions Inheritance based conversion Overloaded functions Exact match Match with promotion Match with standard conversion User defined conversion Constructors as conversion operators Ambiguities 10. File I/O Introduction Error checking Overloading << and >> Formatted I/O Disk files Examples of seekg, tellg, and close Reading and writing objects to the disk Internal transmission of data A larger I/O example: Spell checker Treating a file as an array 11. Miscellaneous Topics New features in the standard C++ language Namespaces Use counts Run Time Type Identification New casts Overloading operator new and delete How virtual functions are implemented Having a limited number of objects Smart pointers We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC. View Course Outline Share This Request On-Site or Customized Course Info REGISTER FOR A COURSEWARE SAMPLE x Sent First Name Last Name Email Request On-Site or Customized Course Info x Sent First Name Last Name Phone Number Company Name Email Question
Course #:WA1080 Advanced C++ Programming Training 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. Objectives At the end of this course, students will be able to: Decide between global functions, friend functions and member functions Code their own memory management routines by overloading operators new and delete Write classes and functions with parameterized types Understand and handle exceptions in C++ programs Disambiguate data and functions using multiple inheritance Understand the difference between various kinds of inheritance Use pointers to class member functions Understand the C++ mechanism to resolve overloaded functions Topics A Review Parameterized Types - Templates Relations of All Kinds Multiple Inheritance Data Structures Function Pointers Exceptions The C++ Standard Template Library Disambiguation File I/O Miscellaneous Topics Audience Anybody who has been programming in C++ and wishes to enhance their knowledge of the language. Prerequisites Students should have completed the Introduction to C++ Programming course or have equivalent knowledge. Duration Five days. Outline of Advanced C++ Programming Training 1. What You Should Already Know - A Review Rationale for a new programming paradigm The language of Object Orientation A typical C++ class - a string class Issues regarding member functions member vs non member function friend vs non friend functions - returning references Why does operator= return a reference? Relationships Simple C++ I/O The uses of const 2. Parameterized Types - Templates Templates Overloading functions Template functions Specializing a template function Disambiguation under specialization Template classes An array template class Instantiating a template class object Rules for templates Non member function w/ a template argument Friends of template classes Templates with multiple type parameters Comments regarding templates 3. Relations of All Kinds Uses of Member Initialization Lists Initialization lists under composition Initialization lists under inheritance Initialization lists w/ Multiple Inheritance (MI) Initialization with MI and composition Efficiency operator= and composition Constructors and composition What is not inherited? operator=, construction, and inheritance Designing for inheritance Public inheritance Simple inheritance Virtual functions A shape class hierarchy Polymorphism Pure virtual functions Virtual destructors Abstract base classes Private inheritance Private inheritance vs composition Using relationships Associations 4. Multiple Inheritance Multiple inheritance Ambiguities Removing ambiguities virtual base classes virtual base classes and the dominance rule Member initialization lists with MI operator= and MI Designing for inheritance 5. Data Structures Introduction A simple List Implementation of the list functions Layering type safe classes upon List A template List class Iterators A template iterator Stack and Queue classes A derived template array class 6. Function Pointers Why have function pointers? Passing functions as arguments Registering functions Callback functions A class with a callback object Registration of exceptions handlers 7. Exceptions What are exceptions? Traditional approaches to error handling try, catch, and throw A simple exception handler Multiple catch blocks The exception specification list Rethrowing an exception Cleanup Exception matching Inheritance and exceptions Resource allocation Constructors and exceptions Destructors and exceptions Catch by reference Standard exceptions 8. The C++ Standard Template Library History and evolution New features The Standard Template Library STL Components Iterators Example: vector Example: list Example: set Example: map Example: find Example: merge Example: accumulate Function objects Adaptors 9. Disambiguation Conversion int Conversions float Arithmetic and pointer conversions Inheritance based conversion Overloaded functions Exact match Match with promotion Match with standard conversion User defined conversion Constructors as conversion operators Ambiguities 10. File I/O Introduction Error checking Overloading << and >> Formatted I/O Disk files Examples of seekg, tellg, and close Reading and writing objects to the disk Internal transmission of data A larger I/O example: Spell checker Treating a file as an array 11. Miscellaneous Topics New features in the standard C++ language Namespaces Use counts Run Time Type Identification New casts Overloading operator new and delete How virtual functions are implemented Having a limited number of objects Smart pointers We regularly offer classes in these and other cities. Atlanta, Austin, Baltimore, Calgary, Chicago, Cleveland, Dallas, Denver, Detroit, Houston, Jacksonville, Miami, Montreal, New York City, Orlando, Ottawa, Philadelphia, Phoenix, Pittsburgh, Seattle, Toronto, Vancouver, Washington DC. View Course Outline Share This Request On-Site or Customized Course Info REGISTER FOR A COURSEWARE SAMPLE x Sent First Name Last Name Email Request On-Site or Customized Course Info x Sent First Name Last Name Phone Number Company Name Email Question