In een applicatie heb ik een aantal objecten. Deze objecten wil ik eigenlijk op gaan slaan in een soort array. Aangezien er per object een aantal acties e.d. kunnen worden uitgevoerd.
Nu heb ik begrepen dat hiervoor vectors kunnen worden gebruikt. Echter heb ik ook begrepen dat dit niet zo geschikt is om dan met pointers te werken.
Ik zal even de relevante code geven van de definities:
Wanneer er een aantal klassen 'in' de vector zijn gestopt dan kan ik wel het aantal uitlezen maar niet de functie test() aanroepen. De volgende code werkt niet correct bijvoorbeeld:
Nu heb ik begrepen dat hiervoor vectors kunnen worden gebruikt. Echter heb ik ook begrepen dat dit niet zo geschikt is om dan met pointers te werken.
Ik zal even de relevante code geven van de definities:
C++:
Wanneer de klasse wordt aangemaakt gaat dit middels een pointer omdat deze uit een plugin komt.1
2
3
4
5
6
| class module { public: void test(); }; vector<module*> mod; |
Wanneer er een aantal klassen 'in' de vector zijn gestopt dan kan ik wel het aantal uitlezen maar niet de functie test() aanroepen. De volgende code werkt niet correct bijvoorbeeld:
C++:
Dit geeft geen errors, alleen hij roept de functie test() helemaal niet aan. Hoe kan ik dergelijke functies aanroepen via een vector?
1
2
3
4
| for(vector<module*>::iterator iter = mod.begin(); iter != mod.end(); iter++) { cout << *(iter)->test(); } |
Inkoopacties - HENK terug! - Megabit
It is a war here, so be a general!