lukasS
Erfahrenes Mitglied
Hallo,
nun habe ich ein Problem gelöst und schon kommt das nächste. Ich habe mir eine template Klasse aus dem Internet ausgeliehen, die genau das macht, was ich brauche. Sie kann mehrere Klassen speichern, die mit einem index angesprochen werden. Das klappt auch wunderbar, wenn ich das nur in der main benutze. Ich bräuchte sowas aber global. Mit VC++ klappt das auch, aber nicht mit dem Borland C++ 4.5. Beim Schließen der Anwendung kommt die Fehlermeldung "Allgemein Schutzverletzung...".
Ein frage vorweg. Ich muss mit diesem Compiler arbeiten, da das ein Schulprojekt ist und wir eben keine anderen nehmen dürfen. Hier ist der KOT der Klasse:
Da ich davon NOCH nicht so viel Ahnung habe, bitte ich um eine etwas einfachere Hilfestellung.
Danke schonmal!
Lukas
nun habe ich ein Problem gelöst und schon kommt das nächste. Ich habe mir eine template Klasse aus dem Internet ausgeliehen, die genau das macht, was ich brauche. Sie kann mehrere Klassen speichern, die mit einem index angesprochen werden. Das klappt auch wunderbar, wenn ich das nur in der main benutze. Ich bräuchte sowas aber global. Mit VC++ klappt das auch, aber nicht mit dem Borland C++ 4.5. Beim Schließen der Anwendung kommt die Fehlermeldung "Allgemein Schutzverletzung...".
Ein frage vorweg. Ich muss mit diesem Compiler arbeiten, da das ein Schulprojekt ist und wir eben keine anderen nehmen dürfen. Hier ist der KOT der Klasse:
Code:
const int DefaultSize = 20;
template <class T> // Das Template und den Parameter deklarieren
class classArr // die parametrisierte Klasse
{
public:
// Konstruktoren
classArr(int itsSize = DefaultSize);
classArr(const classArr &rhs);
~classArr() { delete [] pType; }
// Operatoren
classArr& operator=(const classArr&);
T& operator[](int offSet) { return pType[offSet]; }
const T& operator[](int offSet) const
{ return pType[offSet]; }
// Zugriffsfunktionen
int GetSize() const { return itsSize; }
private:
T *pType;
int itsSize;
};
//<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
// Implementierungen
// Konstruktor
template <class T>
classArr<T>::classArr(int size):
itsSize(size)
{
pType = new T[size];
for (int i = 0; i<size; i++)
pType[i] = 0;
}
// Kopierkonstruktor
template <class T>
classArr<T>::classArr(const classArr &rhs)
{
itsSize = rhs.GetSize();
pType = new T[itsSize];
for (int i = 0; i<itsSize; i++)
pType[i] = rhs[i];
}
// =-Operator
template <class T>
classArr<T>& classArr<T>::operator=(const classArr &rhs)
{
if (this == &rhs)
return *this;
delete [] pType;
itsSize = rhs.GetSize();
pType = new T[itsSize];
for (int i = 0; i<itsSize; i++)
pType[i] = rhs[i];
return *this;
}
Da ich davon NOCH nicht so viel Ahnung habe, bitte ich um eine etwas einfachere Hilfestellung.
Danke schonmal!
Lukas