. .

MASTERING POINTERS AND COMPLEXITY IN C++



This intermediate C++ seminar is intended to give intermediate and advanced programmers and analysts a solid set of tools for dealing with the complexity which can arise in C++ programming.

The seminar is organized into several Units, each dealing with one type of complexity appearing in C++ programs. Unit 1 explores complexities in C++ inherited from C. This complexity is particularly apparent in expressions involving pointers, array subscripts, pointers to functions and multi-dimensional arrays.

Unit 2 focuses on complexities of declarations and expressions unique to C++. Topics studied include references, operator and function name overloading subtleties, const and static member functions, as well as the ambiguity resolution algorithm.

Unit 3 explores the new types of pointers in C++. Pointers to members and member functions are illustrated and explained. Several complex aspects of these new pointer types are discussed.

Unit 4 investigates complexities related to inheritance. When and where to use the various forms of inheritance is examined, as well as when to avoid inheritance in class design. The types of inheritance are explored, as are many subtleties of virtual and pure virtual functions.

Units 5 and 6 are presented only in the two day format. Unit 5 develops the subject of complex idioms in C++. C++ classes can be used idiomatically to model many complex subjects. This unit explores several advanced idiomatic techniques for use in sophisticated applications.

Finally, unit 6 explores the complexity of class design in C++. Issues covered include the canonical form of a class, as well as what to think about in designing C++ classes. This seminar is presented in a one or two day lecture format. Some familiarity with the fundamentals of C++ is strongly recommended.


This intermediate C++ seminar will focus on techniques for mastering the use of pointers, specialized member functions, inheritance and other complexities in C++ programs. Simple, reliable rules for working with numerous complex areas within C++ will be illustrated and explained.

o Unit 1 explores complexities in C++ which have been inherited from C. Complex declarations and expressions using arrays, pointers, subscripts, and dereferencing are examined and explained with clear general principles.

o Unit 2 focuses on complex issues unique to C++ declarations and expressions. References are examined, both with regard to how they are alike and different from pointers. Static, const, operator, inline and friend functions are demonstrated and clearly explained.

o Unit 3 investigates the new pointer types of C++; pointers to members and member functions. These new pointer types provide valuable tools for run-time decision making and localization of affect as provided by class scoping. Correct and incorrect approaches are demonstrated and clarified.

o Unit 4 of the one day seminar investigates issues related to inheritance. Public and private inheritance modes, multiple and single inheritance, the details of protected access, as well as when to use inheritance and polymorphic approaches in C++ systems are all covered.

OBJECTIVES AND ATTENDANCE SUGGESTION:

OBJECTIVES: The objective for this course is to give attendants a practical mastery of numerous complex areas in C++.

WHO SHOULD ATTEND: Anyone learning C++, or who has learned C++, who has questions about complex C++issues involving pointers, operators, functions, classes, inheritance and polymorphism.


IR Course Descriptions Page

IR Home Page