Re: New release of the C Containers Library (CCL)
Ian Collins <ian-news@hotmail.com> wrote:
The word "concrete" appears once in the C++ standard in the context of
abstract base classes:
"10.4 Abstract classes
The abstract class mechanism supports the notion of a general concept,
such as a shape, of which on more concrete variants, such as circle and
square, can actually be used."
I understand that in this case "abstract" and "concrete" are being used
as object-oriented programming terminology: In a (well-designed)
inheritance hierarchy a base class represents a more abstract concept and
a derived class represents a more concrete concept. This has nothing to do
with dynamic bindind (ie. virtual functions in C++).
However, the term "abstract class" is also used in C++ to describe a
class that cannot be instantiated directly, only inherited from, because
it has at least one pure virtual function. Likewise "concrete class" is
one which can be instantiated directly (because of not containing pure
virtual functions).
Perhaps it's unfortunate that the same terms are being used for two
different (although at some level somewhat related) things.