/*
* UML C++ Class Definition
*
* Template
*
* +-Module Name-------------------------------------------------------------------------------------+
* |
* |
* |
* |
* +-Attribute---------------------------------------------------------------------------------------+
* |
* |
* |
* |
* |
* |
* +-Operations--------------------------------------------------------------------------------------+
* |
* |
* |
* |
* |
* |
* +-------------------------------------------------------------------------------------------------+
*
* Formal Template
*
* +--------------------------------------------------------------------------------------------------+
* | Module Name Compartment
* |
* +--------------------------------------------------------------------------------------------------+
* | Attribute Compartment
* |
* | visibility name : type-expression = initial-value { property-string }
* |
* +--------------------------------------------------------------------------------------------------+
* | Operation Compartment
* |
* | visibility name ( parameter-list ) : return-type-expression { property-string }
* |
* | parameter-list => name : type-expression = default-value
* |
* +--------------------------------------------------------------------------------------------------+
*
* N.B. Function scope is indicated by underlining the method/variable
*
* Examples
*
* +-Module--------------------------------------------+
* | Car |
* +-Attribute-----------------------------------------+
* | |
* | + registration number : char * |
* | + data : struct CarData |
* | figCounter : unsigned long |
* | -------------------- |
* | + speed : int |
* | + direction : enum Direction |
* | |
* +-Operations----------------------------------------+
* | |
* | + drive(speed: float, direction : enum Direction) |
* | + getData() : CarData |
* | |
* +---------------------------------------------------+
*
*/