Base Classes is one of the interactive graphs Understand can draw of your code — call trees, dependencies, control flow, and more.
Base Classes
Languages: C#, C++, Python, WebTargets: Classes
Variants: Classic, Cluster, Compare, Relationship, Simplified
Show the classes a selected class directly or indirectly inherits from.
For a selected class, struct, or interface, this shows an edge to each class it directly inherits from, then recurses upward into each of those classes' own base classes, building a multi-level ancestry tree. A class with more than one direct base class (multiple inheritance) gets an edge to each one.
Rooted at Vertebrate below, the graph shows edges to its two direct bases, Animal and Eukaryote, then continues from Animal up to LivingThing. The inverse graph, Derived Classes, shows the reverse relationship — everything that inherits from the selected class.
See the following code and corresponding graph
class LivingThing {
public:
virtual ~LivingThing() = default;
virtual void describe() const;
};
class Animal : public LivingThing {
public:
void describe() const override;
};
class Eukaryote {
public:
virtual ~Eukaryote() = default;
virtual void classify() const;
};
// Multiple inheritance: Vertebrate has two direct base classes
class Vertebrate : public Animal, public Eukaryote {
public:
void describe() const override;
void classify() const override;
};
Base Classes - Classic
The Classic variant is similar to the Simplified variant, showing all relationships in a simple tree, but it uses a custom layout algorithm instead of Graphviz.
Base Classes - Cluster
The Cluster variant groups entities by their containing class/file/architecture.
Base Classes - Compare
The Compare variant shows how the graph has changed relative to the project's comparison database.
Base Classes - Relationship
The Relationship variant filters the graph to only paths connecting the two entities.
Base Classes - Simplified
The Simplified variant shows all relationships in a simple tree (no clusters)