Misplaced Pages

Singly rooted hierarchy

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The singly rooted hierarchy, in object-oriented programming, is a characteristic of most (but not all) OOP-based programming languages. In most such languages, in fact, all classes inherit directly or indirectly from a single root, usually with a name similar to Object; all classes then form a common inheritance hierarchy.

This idea was introduced first by Smalltalk, and was since used in most other object-oriented languages (notably Java and C#).

A notable exception is C++, where (mainly for compatibility with C and efficiency) there is no single object hierarchy. This feature is especially useful for container libraries - they only need to allow putting an Object in a container to allow objects of any class to be put in the container. Containers in C++ have been implemented with multiple inheritance, and with help of template-based generic programming by Bjarne Stroustrup. Other object-oriented languages without a singly rooted hierarchy include Objective-C and PHP.

See also

References

  1. Bruce Eckel, Thinking in C++ vol. 2, Ch. 9 "Multiple inheritance": section "Perspective"
  2. MFC Programmer's SourceBook : Thinking in C Archived 2007-11-13 at the Wayback Machine
  3. Bruce Eckel, Thinking in C++ vol. 1, Ch. 16 "Introduction to Templates": section "The template solution"


Stub icon

This computer-programming-related article is a stub. You can help Misplaced Pages by expanding it.

Categories:
Singly rooted hierarchy Add topic