000
26.08.2008, 23:46 Uhr
~Beginner2k8
Gast
|
Hallo Forum,
ich hoffe Ihr könnt mir weiterhelfen. Ich habe folgende Template Klasse...
C++: |
template <class T> class Sort { static Sort<T>* SortArray;
static void QuickSort(int Left, int Right);
public:
virtual T* GetSortingValue();
static void QuickSort(Sort<T>* Array, int Left, int Right); };
template <class T> Sort<T>* Sort<T>::SortArray= NULL;
template <class T> T* Sort<T>::GetSortingValue() { static T dummy; return &dummy; }
template <class T> void Sort<T>::QuickSort(Sort<T>* Array, int Left, int Right) { SortArray= Array; QuickSort(Left, Right); }
template <class T> void Sort<T>::QuickSort(int Left, int Right) { Sort<T>* obj= &SortArray[(Left + Right) >> 1]; T* Piv= obj->GetSortingValue(); //... }
|
...und folgende Klasse die davon erbt...
C++: |
class SortSub : public Sort<float> { // irgendwelche Variablen };
|
...und dann den folgenden Aufruf...
C++: |
static SortSub* SortSubArray;
Sort<float>::QuickSort(SortSubArray, 0, 4);
|
Leider knallt es immer an der Stelle...
T* Piv= obj->GetSortingValue();
...mit dieser Fehlermeldung (unhandled exception, access writing violation...)
Irgendwie kann er die virtuelle Methode nicht aufrufen, aber ich weiß nicht was da los ist. Bitte helft mir! Danke!! |