Vector<pointer*>::iterator iter;

Címkék
Vector<pointer*>::iterator iter;
2012-12-17T17:05:25+01:00
2012-12-17T17:56:40+01:00
2022-08-17T02:15:32+02:00
WarmUp
shape.h:

class shape { ... public: virtual void draw()=0; };

testApp.h:
class testApp : public ofBaseApp{ private: std::vector<shape*> shapes; public: virtual void draw(); };

A következő for ciklust szeretném iterátorra cserélni

for(int i=0; i<shapes.size(); i++) { shapes[i]->draw(); }

Le is cseréltem a következő kódra, de mindig fordítási hibát kapok:

std::vector<shape*>::iterator iter; for(iter=shapes.begin(); iter!=shapes.end(); iter++) { iter->draw(); }

A hiba a következő:
s\draw\src\testApp.cpp|39|error: request for member 'draw' in '* iter.__gnu_cxx::__normal_iterator<_Iterator, _Container>::operator-> [with _Iterator = shape**, _Container = std::vector<shape*, std::allocator<shape*> >]()', which is of non-class type 'shape*'|

Nem értem mi lehet a baja :(

Üdv.:
János
Mutasd a teljes hozzászólást!
(*iter)->draw();

A *iter eredménye egy mutató.
A mutatóra az m->f() alakban lehet függvényhívást kiadni.
A kettő kombinációja adja a megoldást.
Mutasd a teljes hozzászólást!

Címkék
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd