Article
An object-oriented class library for C++ programs
Article first published online: 30 OCT 2006
DOI: 10.1002/spe.4380171204
Copyright © 1987 John Wiley & Sons, Ltd
Additional Information
How to Cite
Gorlen, K. E. (1987), An object-oriented class library for C++ programs. Software: Practice and Experience, 17: 899–922. doi: 10.1002/spe.4380171204
Publication History
- Issue published online: 30 OCT 2006
- Article first published online: 30 OCT 2006
- Manuscript Revised: 13 JUL 1987
- Manuscript Received: 2 MAR 1987
- Abstract
- References
- Cited By
Keywords:
- Object-oriented programming;
- C++ programming language;
- Smalltalk-80 classes;
- Encapsulation Inheritance;
- Dynamic binding
Abstract
The Object-Oriented Program Support (OOPS) class library is a portable collection of classes similar to those of Smalltalk-80 that has been developed using the C++ programming language under the UNIX operating system. The OOPS library includes generally useful data types, such as String, Date and Time, and most of the Smalltalk-80 collection classes such as OrderedCtn (indexed arrays), LinkedList (singly linked lists), Set (hash tables), and Dictionary (associative arrays). Arbitrarily complex data structures comprised of OOPS and user-defined objects can be stored on disk files or moved between UNIX processes by means of an object I/O facility. The classes Process, Scheduler, Semaphore and SharedQueue provide multiprogramming with coroutines. This paper gives a brief introduction to object-oriented programming and how it is supported by the C+ + programming language. An overview of the OOPS library is also presented, followed by a programming example. The implementation details of two of the class library's more interesting features, object I/O and processes, are described. The paper concludes with a discussion of the differences between the OOPS library and Smalltalk-80 and some observations based on our programming experience with C++ and OOPS.

1097-024X/asset/olbannerleft.jpg?v=1&s=2d7d001211f2c40f177a231141601e9f52afc1f3)
1097-024X/asset/olbannerright.jpg?v=1&s=3aec7891a8ba78b361ead9743adfc0b6eae6369a)
1097-024X/asset/cover.gif?v=1&s=5a70ecca2928358eca4ff75b9921d0552ffb6539)