| Tom Cargill, "Controversy: The Case Against Multiple Inheritance in C++", Computing Systems, Vol. 4, No. 1, pp. 69-82, Winter 1991. |
....designing and implementing systems. The key benefit is that multiple inheritance supports classification of objects which do not conform to a strict hierarchy [Wolf1989, Waldo1991] Opponents point out that the use of multiple inheritance in existing programming languages is fraught with problems [Cargill1991]. In particular, inheriting and merging code from many classes is a complex and error prone task if no methodology is applied. Ironically, a consistent semantics for multiple inheritance was published as early as 1988 [Cardelli1988] but it has taken time to realise that these semantics apply not ....
Tom Cargill, "Controversy: The Case Against Multiple Inheritance in C++", Computing Systems, Vol. 4, No. 1, pp. 69-82, Winter 1991.
....methods from different paths are meant to be executed with respect to their own subobjects; if the naming coincidence forced such methods to be combined, it would not always be clear which subobject to use. All of these issues contribute to the complexity of the inheritance model. Cargill[6] makes an ample case for the complexity of the system; arguing against the introduction of Stroustrup s multiple inheritance system into C , he observes (p.71) Multiple inheritance in C is complicated to learn, write and read. He is particularly opposed to shared base classes, which he feels ....
CARGILL, T. A. Controversy: The case against multiple inheritance in C++. Computing Systems 4, 1 (1991), 69--82.
....this understood, we then introduce abstract base classes, showing how functions may be written in terms of completely abstract containers, and then used for different concrete implementations in the same program. Finally, we introduce multiple inheritance, still a controversial addition to C [3, 9]. To explain the details, we distinguish three cases of multiple inheritance. In the disjoint case, we explain the reasonably straightforward situation were a class is derived from completely distinct base classes; in the parallel case, we point out how there are some minor complications if ....
Tom A. Cargill. Controversy: The case against multiple inheritance in C++. USENIX Computer Systems, 4(1):69--82, winter 1991.
....to combine modules, or impossible to define modules. This section illustrates restrictions on the way a module can be constructed. Object oriented languages originally supported single inheritance. The question whether single inheritance is sufficient is still the topic of some controversy [15]. Proponents of single inheritance argue that multiple inheritance is complex and poorly understood, that it is frequently abused, and that cases in which it is used could be better handled by single inheritance. Conversely, supporters of multiple inheritance argue that it is both natural and ....
Cargill, T. Controversy: The case against multiple inheritance in C++. In Usenix Winter Conference (Jan. 1991).
....either shared or proprietary, and the labels must only encode those classes in the path that lie above the highest shared arc. We use the common intuition that a base class is above its derived classes. Shared classes unfortunately contribute to the complexity of the inheritance model. Cargill[1] makes an ample case for the complexity of the system, as do the various attempts at formalizing the C object model, most notably Snyder s[5] Cargill, arguing against the introduction of Stroustrup s multiple inheritance system into C , complains that (p.71) Multiple inheritance in C is ....
Cargill, T. A. Controversy: The case against multiple inheritance in C++. Computing Systems 4, 1 (1991), 69--82.
....simulations. 14 6. COMMENTS ON OUR EXPERIENCE WITH C In this section we discuss our experience with the C language and how we dealt with several issues that are controversial in the C community (as judged primarily be discussion in the Usenet newsgroup comp.lang.c and in papers such as [Car91]) When the Ptolemy project began, none of us had any experience with an object oriented programming language. As several of us had extensive experience with the management of medium to large scale software systems, we had a good grasp of the importance of data abstraction and information hiding, ....
....problem. The other uses of pointer casts in Ptolemy are primarily in container classes; we anticipate rewriting such classes to use templates when they become more commonly available. We have done our best to use multiple inheritance as little as possible. We do not take a position as extreme as [Car91]; however, our early attempts to use multiple inheritance with virtual base classes convinced us that virtual base classes, at least, are to be avoided where possible, and, at least in our code, it has always been possible to do so. We find multiple inheritance much easier to deal with when ....
T. A. Cargill, "Controversy: The Case Against Multiple Inheritance in C++", Computing Systems, vol 4, #1, Winter 1991.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC