C++ specific issues

C++, with its additional constructs of classes and inheritance, has been greeted with great enthusiasm by much of the programming world. The rush to implement new environments based around these concepts has led to various attempts to represent classes graphically. To take one example, Microsoft's Visual C++ [9] has an online help facility which introduces new class constructs with a diagram showing their full inheritance graph, which demonstrates the key classes to which the user should refer for more information. The key problem with displaying classes is that, with complicated inheritance chains, large numbers of member variables and functions may be available as artifacts from ancestors that are quite irrelevant to the class under consideration. If a list of these members is displayed, it should be possible to limit the list only to those at the bottom of the hierarchy--but equally, it should be simple to get access to lists of the members of ancestor classes.

A large number of the enhancements to C that C++ provides can be ignored for the purposes of this project. The detailed semantics of statements are handled by g++, whereas I am primarily concerned with simple declarations of functions and variables. C++ features such as streams, templates, overloading, etc. require no special handling by my program, because g++ ``spoonfeeds'' it a simple set of constructs that should handle any situation.

Matthew Exon 2004-05-28