Pointer Problem
-
Hallo zusammen,
ich habe ein kleines Problem mit Pointern.
Ich bekomme folgende Fehlermeldung:error: no matching function for call to `testApp::makeComplexBody(b2Body*&, std::vector<ofxTriangleData, std::allocator<ofxTriangleData> >&)' note: candidates are: void testApp::makeComplexBody(b2Body*, std::vector<ofxTriangleData*, std::allocator<ofxTriangleData*> >)Deklararion sieht so aus:
void makeComplexBody(b2Body* body, vector <ofxTriangleData*> triangles);Aufruf so:
makeComplexBody(body, tri.triangles);Die Funktion scheint vollkommen okay,
ich habe das mal debugged um zu sehen was in den variablen tri & body steht, das sieht dann so aus:
http://www.imghoster.net/bild.php/2,2077,triPD7QR.jpgIn der Fehlermeldung verwirrt mich das b2Body*&
Wieso * und &?
Hat jemand vielleicht ne Lösung?
Danke,
Snoogie
-
Das Bild mit ein wenig Code ist hier:
http://www.imghoster.net/bild.php/2077,triPD7QR.jpgHier kann man auch den Inhalt der variablen sehen
-
Die Funktion erwartet einen vector<ofxTriangleData*>, du übergibst aber einen vector<ofxTriangleData>.
Ist es eigentlich Absicht, dass bei der Übergabe eine Kopie des Vektors erzeugt wird?
-
Hey,
danke für die schnelle Antwort.
Ich habe keine Ahnung ehrlich gesagt.
Da ich gerade erst mit C++ angefangen habe, was muss ich den ändern, damit ich vector<ofxTriangleData*> übergebe und nicht vector<ofxTriangleData>?
-
Du musst tri.triangles als vector<ofxTriangleData*> deklarieren und deinen Code entsprechend anpassen oder du deklarierst deine Funktion anders
so z.Bsp.void makeComplexBody(b2Body* body, vector<ofxTriangleData>& triangles);