Advanced C++ Programming

5 Days course

Language: English

This course is only available on request!!


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

WHAT YOU WILL LEARN
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

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

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

OUTLINES

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
  • member vs non member function
  • friend vs non friend
  • functions - returning references
  • Why does operator= return a reference?

  • 5) Relationships
    6) Simple C++ I/O
    7) The uses of const

    CHAPTER 2: PARAMETERIZED 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 OF 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

  • Simple inheritance
  • Virtual functions
  • A shape class hierarchy
  • Polymorphism
  • Pure virtual functions
  • Virtual destructors
  • 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


    [HOME] [dates] [reserve] [seminars]
    FDDI Institute
    De Regenboog 11 - 2800 Mechelen - Belgium - Europe
    Tel 32 15 24 50 58 - Fax 32 15 25 10 50