Objekt Instanz erstellen, aber wie?
-
Hallo,
ich versuche gerade mit dem SLD-Wrapper SDLmm umzugehen.
Jetzt steht in der Doku:
http://sdlmm.sourceforge.net/classSDLmm_1_1Display.htmlProtected Methods
Display& operator= (Display &)
Dummy implementation of operator=() to stop initialization. More...Display (Display &)
Display ()
A NOOP constructor. More...und
Static Public Methods
Display& GetDisplay ()
The one and only display. More...Sprich, der Konstruktor ist Protected und eine Methode GetDisplay soll eine
Referenz auf das Objekt zurückgeben.Wenn ich jetzt im Programm schreibe:
SDLmm::Display disp = SDLmm::Display::GetDisplay();kommt ein Fehler. Was eigentlich klar ist da das Objekt "disp" erst existieren muß bevor es von GetDisplay verwendet werden kann.
Wie kann ich ein Objekt von Display erstellen? Ist das so eine Arte Singelton?
-
Ich wuerd jetzt einfach mal auf
SDLmm::Display::GetDisplay ( ).eineMethode()tippen.
-
hast du SDLmm::Display::Init() aufgerufen und den rückgabewert überprüft?
ansonsten: mach uns das leben leichter und poste den code, der nicht geht...
-
Danke, das funktioniert.

Da muß man aber immer viel tippen..
Z.b.SDLmm::Display::GetDisplay().SetVideoMode(640,480,32,SDL_FULLSCREEN|SDL_SWSURFACE);Rückgabewert von Init() ist Bool.
-
Dafuer kann man z.B ein Macro oder eine Funktion benutzen.
Display & GetDisplay() { return SDLmm::Display::GetDisplay() } //oder #define GetDisplay SDLmm::Display::GetDisplay()Das is aber jedem selbst ueberlassen.
-
Oder das benuten, was dafür gedacht ist. using.
-
Oder du speicherst dir eine Referenz auf das Objekt (das geht nämlich auch ohne Kopierkonstruktor), so mach ich das immer:
SDLmm::Display& disp = SDLmm::Display::GetDisplay();