One of the attractive aspects of C++ is that it offers good facilities for object-oriented programming (OOP), but, as a hybrid language, it also supports procedural programming. The significance of this for programmers is that it offers more flexibility allowing them to shift to object-oriented programming if and when they feel the need to do so. In this regard, C++ differs from some purely object-oriented languages, such as Smalltalk, Eiffel and Java. This book offers practical guidance on how to programme in both styles. The C++ language and its standard library have gone through a good many improvements and extensions during their evolution. This third edition has therefore been completely revised in accordance with the C++ language revision, which is embodied in the ANSI/ISO C++ Standard. For example, the new, important type string is used throughout the book and the Standard Template Library (STL) is introduced to readers at an early stage and discussed in more detail later on. All example programs and the solutions to the exercises can be downloaded from the website. http://home.wxs.nl/ ~ammeraal/ Solutions for some of these exercises can be found in the appendix.