Why are there two commercially successful, hybrid OO languages based on C? The answer lies in the popularity, flexibility and performance of their base language. As a general purpose language, C has much to offer as a base to build upon: it runs on nearly every architecture, there are many C programmers, it is fast and efficient, and existing C programs will work with the new compilers with either no or only minimal modification. When C++ and Objective C were being developed, a common criticism of the pure OO languages was their performance. By choosing a hybrid approach, the developers of these languages sought, among other goals, to find a compromise between speed and support for OO programming.
This chapter is organized into five parts: this introduction section, a brief background on some important ideas from C, a section on the C++ language, a section on the Objective C language, and finally a comparison and summary of the two. While the focus of the language sections is on the support for OO programming, the C++ section has additional coverage of the non-OO features of the language. These sections conclude with coverage of advanced language features.