Array einer Template Klasse Chain
-
Hallo,
ich habe ein Problem mit meinem Programm. Ich soll ein Array mit Listen als Elemente bestücken. Aber irgendwie will dies nicht klappen, ich hab da nen Zeiger-Problem und ich weiß nicht, wie ich dieses lösen kann.
Das erste Array-Element zeigt immer wieder auf sich selber, sodass ich ne Dauerschleife erzeuge.
Hier mal der codetemplate <class T> class Chain{ public: friend void Equivalenz(); template <class S> friend ostream& operator<< (ostream & ,const Chain<S>& ); Chain(T t = 0, Chain<T> *h = NULL): data(t), next(h) {}; private: T data; Chain<T> *next; }; template <class T> ostream& operator<< (ostream & ostr,const Chain<T>& a){ Chain<T> temp = a; while(&temp){ ostr<<temp.data<<" -> "; temp = *temp.next; } return ostr; } void Equivalenz(){ ifstream inFile("Eingabe.txt"); int n,j,i; inFile >> n >> i >> j; cout<<n<<endl; cout<<i<<endl<<j<<endl; Chain<int> *first = new Chain<int>[n]; for(int s = 0;s<n;s++) first[s] = NULL; while(inFile.good()){ Chain<int> *a = new Chain<int>(i); a->next = &first[i]; first[i] = *a; Chain<int> * b = new Chain<int>(j); b->next = &first[j]; first[j] = *b; inFile >> i >> j; } cout<<first[0]; } int main() { int n; Equivalenz(); cin>>n; return 0; }Ich habe schon einiges Versucht, aber entweder bekomme ich Referenzierungsfehler oder erzeuge wieder meine schöne Dauerschleife.
Ich bin derzeit recht ratlos und ehrlich gesagt auch leicht angefressen
Vllt könnt ihr mir ja helfen !LG
-
Hallo,
die Abfrage "while(&temp)" ergibt ja auch keinen Sinn.
Wenn du schon mit Zeigern hantierst, dann mußt du diese auch konsequent verwenden:const Chain<T> * temp = &a; while(temp) { ostr<<temp->data<<" -> "; temp = temp->next; }