Main Page Modules Class Hierarchy Compound List File List Compound Members File Members Related Pages
CReferenceGrid Class Template Reference
Von CGrid abgeleitete Klasse, die auf die Speicherung von dynamisch alloziierten Daten spezialisiert ist.
More...
#include <CReferenceGrid.h>
Inheritance diagram for CReferenceGrid::
List of all members.Public Methods
Protected Methods
- virtual void disposeElement (int intX, int intY)
- Gibt den für ein Element dynamisch alloziierten Speicher wieder frei. More...
Detailed Description
template<class T> class CReferenceGrid
Das von CGrid abgeleitete Klassentemplate CReferenceGrid übernimmt das gesamte Verhalten von CGrid, ist jedoch speziell für die Speicherung von dynamisch alloziierten Elementen ausgelegt.
Bei einer Größenänderung, oder beim Aufruf der Methode clear() wird der für ein Element zuvor dynamisch alloziierte Speicher mittels delete() freigegeben.
Der Templateparameter T legt den Datentyp für die Gridelemente fest.
-
Note:
-
Aus dem Datentyp T wird automatisch ein Zeigerdatentyp erstellt. Setzt man z.B. für T den Typ int ein, so speichert das Grid tatsächlich Elemente vom Typ int*, d.h. Zeiger auf int -Elemente.
Constructor & Destructor Documentation
template<class T> |
CReferenceGrid< T >::CReferenceGrid<T> (
|
)
|
|
|
Der Standardkonstruktor erzeugt ein NULL-Grid, d.h. ein Grid mit Null Zeilen und Null Spalten.
-
Remarks:
-
Das Flag DisposeData wird auf den Wert true gesetzt. Dies hat zur Folge, daß das zuvor in CGrid festgelegte Verhalten, für jedes freigewordene Element bei Lösch- oder Größenänderungsoperationen die Methode disposeElement() aufzurufen, aktiviert wird.
|
template<class T> |
CReferenceGrid< T >::CReferenceGrid<T> (
|
int intWidth,
|
|
int intHeight )
|
|
|
Der zusätzliche Konstruktor erzeugt ein Grid mit den Ausmaßen intWidth x intHeight.
-
Remarks:
-
Das Flag DisposeData wird auf den Wert true gesetzt. Dies hat zur Folge, daß das zuvor in CGrid festgelegte Verhalten, für jedes freigewordene Element bei Lösch- oder Größenänderungsoperationen die Methode disposeElement() aufzurufen, aktiviert wird.
|
template<class T> |
CReferenceGrid< T >::CReferenceGrid<T> (
|
CReferenceGrid< T > & objGrid )
|
|
|
Der Kopierkonstruktor erzeugt ein Grid auf der Basis eines anderen CReferenceGrid -Objekts. Dabei wird die Größe des Zielgrids an die Größe des Quellgrids angepaßt.
-
Remarks:
-
Das Flag DisposeData wird auf den Wert true gesetzt. Dies hat zur Folge, daß das zuvor in CGrid festgelegte Verhalten, für jedes freigewordene Element bei Lösch- oder Größenänderungsoperationen die Methode disposeElement() aufzurufen, aktiviert wird.
-
Note:
-
Es wird kein Deepcopy durchgeführt, was zur Folge hat, dass die in den Elementen gespeicherten Referenzen in beiden Grids anschließend auf dieselben Daten zeigen.
|
template<class T> |
CReferenceGrid< T >::~CReferenceGrid<T> (
|
) [virtual]
|
|
|
Der Standarddestruktor löscht das Gitter mittels clear() wodurch der für jedes Element dynamisch alloziierte Speicher freigegeben wird. Danach wird der Speicherbereich des Grids für die Elementzeiger selbst freigegeben. |
Member Function Documentation
template<class T> |
void CReferenceGrid< T >::disposeElement (
|
int intX,
|
|
int intY ) [protected, virtual]
|
|
|
Die Methode disposeElement() wird von der CReferenceGrid -Klasse reimplementiert. Die Methode prüft zunächst ob der Zeiger an der Position intX, intY ungleich NULL ist. Ist dies der Fall, so wird mittels delete() der für das Element dynamisch alloziierte Speicher wieder freigegeben. Danach wird der Zeiger auf NULL zurückgesetzt.
-
Remarks:
-
Die Methoden resize() und clear() sind bereits in der Klasse CGrid so implementiert, dass diese für jedes freigewordene Element die Methode disposeElement() aufrufen, wenn das Flag DisposeData auf true gesetzt ist. Jedoch wird das Flag in der CGrid -Klasse vom Konstruktor auf false gesetzt und die Methode disposeElement() ist so implementiert, dass sie keine Wirkung zeigt.
Reimplemented from CGrid. |
The documentation for this class was generated from the following file:
Generated at Fri Apr 19 16:53:06 2002 for GLFramework by
1.2.6 written by Dimitri van Heesch,
© 1997-2001