Hi even het volgende.... ik zit met een stuk code en op een bepaald punt heeft iedere pointer de juiste waarde maar even daaronder hebben ze allemaal de waarde van de laatste pointer. Uhm hoe ga ik dit uitleggen....
Situatie is als volgt:
ik heb pointer 1 die naar 3 andere pointers wijst. Die 3 andere pointers hebben allemaal eigenschappen.... Als ik nou een list iterator gebruik om over die eerste pointers te itereren dan dan om de een of andere reden is mhead gelijk aan de mtail en is gelijk aan de laatste 3 pointers. Waar heb ik een fout gemaakt? Zit dat dan in de list? Of in de pointers? Of ergens anders?
De code die ik gebruik ziet er als volgt uit:
iter1 t/m iter3 geven elk de goede waardes aan , maar iter4 doet dus niet wat ik wil..... omdat het misschien in de list dingen zit zal ik die ook even neerzetten....
mList.cpp
mList.h
edit: wat ingekort... uhm jullie moeten het eerste deel dus maar geloven
Situatie is als volgt:
ik heb pointer 1 die naar 3 andere pointers wijst. Die 3 andere pointers hebben allemaal eigenschappen.... Als ik nou een list iterator gebruik om over die eerste pointers te itereren dan dan om de een of andere reden is mhead gelijk aan de mtail en is gelijk aan de laatste 3 pointers. Waar heb ik een fout gemaakt? Zit dat dan in de list? Of in de pointers? Of ergens anders?
De code die ik gebruik ziet er als volgt uit:
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
| Combination::Combination() { TractorPtr bTractorPtr; // hier maak ik wat pointers aan TrailerPtr bTrailerPtr; DriverPtr bDriverPtr; f =fopen(filename1, "r"); while(!feof(f)) { fscanf(f,"%s %s %s",Temp1,Temp2,Temp3); startTime = atoi(Temp2); endTime = atoi(Temp3); TractorPtr aTractorPtr = new Tractor(); for(int j=0; j<12;j++) aTractorPtr->mTractorName[j] = Temp1[j]; // hier krijgen ze wat waardes aTractorPtr->mStart = int(startTime/100)*60 + startTime%100; aTractorPtr->mEnd = int(endTime/100)*60 + endTime%100; mTractorList.AddAtEnd(aTractorPtr); aTractorPtr->mTractorNumber=mTractorList.GetSize(); } fclose(f); ListIterator <TractorPtr> iter1(mTractorList); f =fopen(filename4, "r"); CombiPtr aCombi = new Combi(); while(!mCombiList.IsEmpty()) mCombiList.RemoveFirst(); while(!feof(f)) { fscanf(f,"%s %s %s %s",Temp1,Temp2,Temp3,Temp4); for(iter1.GotoBegin();!iter1.AtEnd();iter1.GotoNext()) { if(!_stricmp(iter1.GetElement()->mTractorName,Temp1)) { count++; bTractorPtr = iter1.GetElement(); } } for(iter2.GotoBegin();!iter2.AtEnd();iter2.GotoNext()) { if(!_stricmp(iter2.GetElement()->mDriverName,Temp3)) { count++; bDriverPtr = iter2.GetElement(); } } for(iter3.GotoBegin();!iter3.AtEnd();iter3.GotoNext()) { if(!_stricmp(iter3.GetElement()->mTrailerName,Temp2)) { count++; bTrailerPtr = iter3.GetElement(); } } if(count < 3) cout<<"Count te laag, onderdeel combinatie niet gevonden" <<endl; else { aCombi->mDriverPtr = bDriverPtr; aCombi->mTractorPtr = bTractorPtr; aCombi->mTrailerPtr = bTrailerPtr; if(mCombiList.GetSize() == 0) mCombiList.AddAtFront(aCombi); else mCombiList.AddAtEnd(aCombi); aCombi->mCombinationNumber = mCombiList.GetSize(); } count = 0; cout<<bDriverPtr->mDriverName<<" "<<bTractorPtr->mTractorName<<" "<<bTrailerPtr->mTrailerName<<endl; cout<<aCombi->mDriverPtr->mDriverName<<" "<<aCombi->mTractorPtr->mTractorName<<" "<<aCombi->mTrailerPtr->mTrailerName<<endl; } //hier werken ze nog ListIterator <CombiPtr> iter4 (mCombiList); for(iter4.GotoBegin();!iter4.AtEnd();iter4.GotoNext()) { cout<<iter4.GetElement()->mCombinationNumber<<" "<< iter4.GetElement()->mDriverPtr->mDriverName<<" "<< iter4.GetElement()->mTractorPtr->mTractorName<<" "<< iter4.GetElement()->mTrailerPtr->mTrailerName<<endl; // hier niet meer } fclose(f); } |
iter1 t/m iter3 geven elk de goede waardes aan , maar iter4 doet dus niet wat ik wil..... omdat het misschien in de list dingen zit zal ik die ook even neerzetten....
mList.cpp
mList.h
edit: wat ingekort... uhm jullie moeten het eerste deel dus maar geloven
[ Voor 37% gewijzigd door Lord_T op 04-08-2003 00:58 ]
ja ja... niet iedereen heeft dezelfde kennis... wees daarom ook eens gewillig en geef een antwoord op een vraag ;)