Klasse CRaum

CRaum - Wo bin ich ?

CRaum ist derzeit eine einfache Datenklasse, die außer Zugriffsfunktionen auf die im Raum enthaltenen Gegenstände und die dem Raum zugeordneten Wege keine echte Funktionalität bietet. Dabei werden lediglich die Funktionen der Listenklasse gekapselt. Für Übung 3 eigent sich diese Raumklasse sehr gut als Basisklasse, da sie sehr einfach mit spezifischer Funktionalität erweitert werden kann.

Konstruktion / Destruktion

class CRaum
{...
public:
CRaum (string strName);
virtual ~CRaum ();
...};

Konstruktor und Destruktor initialisieren bzw. zerstören die vorhandenen Datenstrukturen.

Datenstrukturen

class CRaum
{...
private:
CList<CRaum *> * m_plistRaum;
CLsit<CGegenstand *> * m_plistGegenstand;
string * m_pstrName;
...};

Mit Hilfe dieser beiden Listen wird die interne Struktur des Labyrinths erstellt. Verbindungen zwischen einzelnen Räumen und plazierte Gegenstände schlagen sich hier nieder. m_pstrName enthält den Namen des aktuellen Raums.

Öffentliche Zugriffsfunktionen

class CRaum
{...
public:
virtual string GetName ();
// Zugriffsfunktionen für angrenzende Räume
int AddRaum (CRaum * pRaum);
int GetRaum (int iPos, CRaum * & pRaum);
int RemoveRaum (int iPos, CRaum * & pRaum);
// Zugriffsfunktionen für im Raum befindliche Gegenstände
int AddGegenstand (CGegenstand * pGegenstand);
int GetGegenstand (int iPos, CGegenstand * & pGegenstand);
int RemoveGegenstand (int iPos, CGegenstand * & pGegenstand);
...};

Die Zugriffsfunktionen sind jeweils direkt auf die der Klasse CList abgebildet. Die Add - Funktionen hängen einen Wert an die Liste an, die Get - Funktionen lesen einen Wert aus der Liste und die Remove - Funktionen entfernen einen Wert aus der Liste und geben ihn zurück. Eine Zugriffsfunktion f&uumauf den Namen des Raumes steht ebenfalls zur Verfügung.