Konstruktor mit Zeiger aufrufen
-
moin,
mein Problem ist, das ich nicht richtig weiß wie ich den Konstruktor aufrufen soll. Habe folgenden Code:// CBall.h #ifndef _CBall_h_ #define _CBall_h_ #include <allegro.h> //für BITMAP class CBall { private: BITMAP *Sprite; public: CBall(BITMAP *s); }; #endif
//CBall.cpp #include "CBall.h" CBall::CBall(BITMAP *s) { Sprite = s; };
//main.cpp #include <allegro.h> #include "MyInit.h" #include "CBall.h" int main() { MyInit(); //Allegro initalisieren BITMAP *Ball = load_bitmap("ball.bmp",NULL); // Erzeugt einen Zeiger auf ein Bitmap CBall MeinBall(*Ball); //Hier liegt der Fehler [...] destroy_bitmap(Ball); return 0; }END_OF_MAIN()
So, das wäre vereinfacht der Code, also ich benutze wie man sieht Allegro und daher kommt auch der Typ BITMAP, mein Problem ist, das ich nicht weiß wie ich jetzt den Konstruktor richtig aufrufe und ihm das BITMAP übergebe. Ich bekomme halt immer an dieser Stelle
Sprite = s;
den Fehler "cannot converte s from type BITMAP to BITMAP*". Hab mir angeguckt wie das mit den Zeigern und Funktionen so funktioniert, aber leider kann ich das ganze nicht auf diese Anwendung übertragen, warum weiß ich auch nicht, liegt glaub ich an dem BITMAP. Hab jetzt in den Code kommentiert was in der Dok zu dem BITMAP steht, aber das hilft mir auch nicht weiter :(, wäre nett wenn mir jemand sagen könnte WIE und WARUM ich den Aufruf machen müsste,
mfg, Topas
-
muesste es nicht:
CBall MeinBall(Ball);
heissen?
was auch immer
-
Jo genau das weiß ich ja nicht
Wenn dem so ist muss es auf jeden Fall noch irgendeinen Fehler geben, denn so funktioniert es auch nicht, liegt der vielleicht in der Zuweisung im Konstruktor?