als ik dit doe, gaat het helemaal goed:
maar als ik vervolgens de vector naar de classe als member plaats gaat het fout en krijg ik een geheugen fout. na wat testen zag ik ook dat ongeacht de inhoud van de vector hij de for-loop oneindig herhaald. er gaat dus iets fout met begin() en end().
ook heb ik geprobeerd met size() het op te lossen, dus gewoon een int als teller en met [] de vector benaderen. en ook dit gaf een geheugen fout.
wat doe ik nou fout? ik kom er nu echt niet meer uit
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
| bool Ruimte::isInRuimte(int kaartnr) { vector<int> gebrInRuimte; for(vector<int>::iterator i(gebrInRuimte.begin()); i != gebrInRuimte.end();i++) { if(kaartnr == *i) return true; } return false; } |
maar als ik vervolgens de vector naar de classe als member plaats gaat het fout en krijg ik een geheugen fout. na wat testen zag ik ook dat ongeacht de inhoud van de vector hij de for-loop oneindig herhaald. er gaat dus iets fout met begin() en end().
C++:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| class Ruimte { public: Ruimte(); void voegDeurcontrollerToe(Ruimte *bestemming, Kaartlezer *k); void melding(Melding meld); void ontgrendelAlles(); bool isInRuimte(int); bool magInRuimte(int); private: vector<int> toegangsLijst; vector<int> gebrInRuimte; vector<Deurcontroller> lnkDeurcontroller; }; |
C++:
1
2
3
4
5
6
7
8
9
10
11
12
| bool Ruimte::isInRuimte(int kaartnr) { for(vector<int>::iterator i(gebrInRuimte.begin()); i != gebrInRuimte.end();i++) { if(kaartnr == *i) return true; } return false; } |
ook heb ik geprobeerd met size() het op te lossen, dus gewoon een int als teller en met [] de vector benaderen. en ook dit gaf een geheugen fout.
wat doe ik nou fout? ik kom er nu echt niet meer uit