| Use of Multiple Inheritance (MI) | Languages that use/support | How to accomplish in Ada |
| Gain visibility to a "module" | Eiffel | with and "use" or "use type" clause |
| Is-implemented-using relationship | C++ and Eiffel | Tagged types with private extensions and record composition |
| Mix-in MI | C++ and Eiffel | |
| Mix-in provides components and operations and overriding operations need only look at mix-in components | C++ and Eiffel | Tagged type and private extensions |
| Mix-in provides components and operations and overriding operations need access to entire new object | C++ and Eiffel | Generic packages with generic tagged type formal parameters which inherit and re-export |
| Case two plus mix-in object must be able to be put in list with other mix-in objects | C++ and Eiffel | Access discriminants on tagged types. Generics may also be used |
Based on “Multiple Inheritance in Ada 95” by Tucker Taft
| Previous slide | Contents | Next slide |