/*! @page Vocb Vocabulary and Notions

<BR>
<B> Previous:</B> @ref sVoc
<B> Up:</B> @ref Intro
<B> Next:</B>  @ref lemutree
<BR>
 
<HR>

@section sVocb Usefull notions of C++ language

<OL>
<LI><B>Header files and source codes files</B>
<DL>
<DT></DT>

<DD>

Geant4 is a C++ toolkit and one need to write both a header and a source files for each object class. 

The header file contains the declaration of all methods and variables that are specific to the class that is being defined. One also have to specify all the other classes from which his class inherits. Finally, one should indicate if the methods and variables are public (can be seen and get their values modified by other methods) or private (excusive appartenance to the class). Header files are located in the $LEMU/include directory.

The source file contains the code of each method. These files are located in the $LEMU/source directory.
</DD>
<DT></DT>
<DD>

\anchor virtual_classes
<LI><B>The inheritance philosophy</B>
<DL>
<DT></DT>
<DD>

A base class (a class from which other classes derive) can present so-called <I><B>virtual</B></I> methods. That means that these methods can be re-written when defining a daughter class: in C++ language, we say that virtual methods can be <i>overloaded</i>. Virtual methods are the key of Geant4 framework modularity: many of Geant4 classes can be personalized by the user. They are called \b virtual \b classes. 

One only has to build a daughter class of those classes and overload the virtual methods, making sure to keep their  name exact because they are called at other places of the framework. It is also possible to add new methods and variables at will. 

For example, the method in charge of building the geometry must be called <I>Construct()</I>, and the messengers methods in charge of modifying parameters must have the name <I>SetNewValue()</I>.

</DD>
</LI>
</OL>

*/
