Hallo Liebe Leute,
Ich befinde mich grade in der Klausurvorbereitung für Objektorientierte Anwendungen und habe die Klasse: Liste erstellt.
Die Klasse funktioniert bis auf ein kleinen Fehler im Algorithmus einwandfrei, darum gehts aber nicht.
Ich will die Klasse nun mittels Templates so ändern das beliebige Datentypen gespeichert werden können.
€: Code gefixt!
Compiler meckert und sagt: C2955 Liste' use of class template requieres template argument list. Vielen Dank für Hilfe, Gruß Joeboe!
Ich befinde mich grade in der Klausurvorbereitung für Objektorientierte Anwendungen und habe die Klasse: Liste erstellt.
Die Klasse funktioniert bis auf ein kleinen Fehler im Algorithmus einwandfrei, darum gehts aber nicht.
Ich will die Klasse nun mittels Templates so ändern das beliebige Datentypen gespeichert werden können.
€: Code gefixt!
C++:
#include <iostream>
using namespace std;
template <typename T>
struct Knoten {
T value;
Knoten<T> *next;
Knoten(T v = 0) {
next = 0;
value = v;
}
};
template <typename T>
class Liste {
private:
Knoten<T> *first;
int size;
public:
Liste();
~Liste();
void insert(T v);
bool find(T v);
};
template <typename T>
Liste<T>::Liste() {
size = 0;
first = new Knoten<T>();
}
template <typename T>
Liste<T>::~Liste() {
while (first != 0 ) {
Knoten<T> *k = first->next;
delete first;
first = k;
}
}
template <typename T>
void Liste<T>::insert(T v) {
if(!find(v)) {
Knoten<T> *k = new Knoten<T>();
k->value = v;
k->next = first;
first = k;
}
else cout << "Knoten enthalten";
}
template <typename T>
bool Liste<T>::find(T v) {
Knoten<T> *k = first;
if (k->value == v) return true;
else while(k->next != 0)
{
if (k->value == v) {
k->next = first;
first = k;
return true;
}
k = k->next;
}
return false;
}
int main(void) {
Liste<int> obj;
obj.insert(20);
return 0;
};
Zuletzt bearbeitet von einem Moderator: