TITLE: abstract data type versus abstract base class (Newsgroups: comp.lang.c++.moderated, 26 Oct 99) UNKNOWN: >> An ADT is not "abstract" in the OO sense. It's abstract only >> in the sense that it's implementation is hidden, and it can be >> used just like a built-in type. That is, an ADT is a well >> encapsulated concrete class with value semantics. >> >> At least that's what I know as ADT. GLEW: "Andy Glew" >Yours is a perfectly good definition, and is consistent >with many books, some of which predate the object oriented fad. CLAMAGE: Steve Clamage Indeed, ADT is a general computer science term, and has no special definition in C++. >However, in the C++ community, the term "abstract data type" >is often associated with "abstract base class", i.e. with a class >that contains virtual members which are intended to be overridden >in concrete derived classes. It's probably just a conflation of two terms that sound superficially the same. ADT is a useful term in its own right, and changing it mean the same thing as "abstract base class" is not only pointless but harmful. Such degradation happens in English all the time (disinterested/uninterested, compose/comprise), but as technically educated people, maybe we can avoid doing so with technical terms.