12th European Conference on Object-Oriented Programming
Brussels, Belgium, July 20 - 24, 1998

Tutorial T13


T1  T2  T3   T4   T5   T6   T7   T8   T9   T10   T11   T12   T13   T14   T15   T16  

Advanced C++ Programming Styles and Idioms

Organizers: James O. Coplien
Bell Laboratories
Day: Tuesday morning & afternoon (full day)
Level: Intermediate/advanced
Room: C304 (4th floor)

Is C++ a high-level or low-level language? It depends how you use it! This seminar will introduce programming techniques that raise the level of C++ programming, both by freeing the programmer from common administrative details, and by modeling some of the powerful semantics of high-end object-oriented programming languages.

The seminar goes beyond the limits of most C++ texts and introductory courses to present programming styles that increase the leverage of the accomplished C++ programmer who is looking to expand their horizons. Drawing from the book ``Advanced C++ Programming Styles and Idioms,'' and taught by the book's author, the seminar tackles difficult but common problems faced by developers of C++ systems, both large and small. The seminar starts by showing the pitfalls of a simple class design and how overloaded assignment and copy constructors alleviate some common problems. Building on that base, the course explores assorted programming styles useful for resolving other common, though more subtle, programming problems:

Counted pointers:
how to allocate objects from the heap without having to explicitly free them when their pointer goes out of scope
Exemplars:
objects that take over some of the roles of C++ classes to provide the equivalent of the ``virtual constructors''
Generic exemplars:
a way of using exemplars that isolates the impact of adding new classes to a system in a way that class inheritance alone doesn't address
Multi-methods:
when you want a member function to be selected according to the types of multiple arguments (unlike virtual functions, which select a function only according to the type of the object for which they are called)

This course is for the C++ programmer with at least a year of experience in C++ or another object-oriented programming language.

Jim Coplien (cope@bell-labs.com) is a Distinguished Member of Technical Staff at Bell Laboratories in Naperville, Illinois, USA. He is the author of Advanced C++ Programming Styles and Idioms, of the Software Patterns white paper, and of dozens of columns and articles on C++, software patterns, software development organization and process, and software design. He is a Member Emeritus of the Hillside Group, and was program chair of ACM OOPSLA '96. His current research interests include multi-paradigm design, the role of geometric beauty and coding aesthetics in design, and sociological patterns of professional development organizations.


ECOOP'98 Home Page | Conference at a Glance | Organization
Technical Programme | Tutorials | Workshops | Panels | Exhibits | Demonstrations | Posters
Social Programme | Partner's Programme | Accommodation | Useful to Know | Registration

Last modified on July 6, 1998. Maintained by the ECOOP'98 information team.