The inheritance graph of any set of classes in C++ must be a directed acyclic graph. Very often these inheritance graphs form forests or trees. Also the inheritance graph of ABACUS is designed as a tree with a single exception where we use multiple inheritance.
The following sections and Table
give a survey of the different
classes of ABACUS. The details are outlined in
Section
.
Basically the classes of ABACUS can be divided in three different main groups. The application base classes are the most important ones for the user. From these classes the user of the framework has to derive the classes for his applications. The pure kernel classes are usually invisible for the user. To this group belong, e.g., classes for supporting the branch-and-bound algorithm, for the solution of linear programs, and for the management of constraints and variables. Finally, there are the auxiliaries , i.e., classes providing basic data structures and tools, which can optionally be used for the implementation of an application.