Version 3.4.14 Frank B. Brokken and Karel Kubat (frank@icce.rug.nl, karel@icce.rug.nl) ICCE, State University of Groningen Westerhaven 16, 9718 AW Groningen Netherlands Published at the State University of Groningen ISBN 90 367 0470 71994, 1995 This document is intended for knowledgable users of C who would like to make the transition to C++. It is a guide for `our' programming courses, which are given yearly at the State University of Groningen. As such, this document is not a complete C/C++ handbook, but rather serves as an addition to other documentation sources. 1. Introduction to C++
1.1 The history of C++ 1.2 Advantages and pretensions of C++ 1.3 What is Object-Oriented Programming? 1.4 Differences between C and C++
2. A first impression of C++
2.1 More extensions of C++ 2.2 Functions as part of structs 2.3 Data hiding: public, private and class 2.4 Structs in C vs. structs in C++
3. Classes
3.1 Constructors and destructors 3.2 Const member functions and const objects 3.3 The operators new and delete 3.4 The keyword inline 3.5 Objects in objects: composition 3.6 Friend functions and friend classes
4. Classes and memory allocation
4.1 Classes with pointer data members 4.2 The assignment operator 4.3 The this pointer 4.4 The copy constructor: Initialization vs. assignment 4.5 More operator overloading 4.6 Conclusion
5. Static data and functions
5.1 Static data 5.2 Static member functions
6. Inheritance
6.1 Related types 6.2 The constructor of a derived class 6.3 Redefining member functions 6.4 Multiple inheritance 6.5 Conversions between base classes and derived classes 6.6 Storing base class pointers
7. Polymorphism, late binding and virtual functions
7.1 Virtual functions 7.2 Pure virtual functions 7.3 Comparing only Persons 7.4 Virtual destructors 7.5 Virtual functions in multiple inheritance
8. Concrete examples of C++
8.1 Storing objects: Storable and Storage 8.2 A binary tree