1
Fenêtrage / Re : Singleton RenderWindow
« le: Avril 30, 2012, 08:15:31 am »
D’acore, merci pour tout.
Cette section vous permet de consulter les contributions (messages, sujets et fichiers joints) d'un utilisateur. Vous ne pourrez voir que les contributions des zones auxquelles vous avez accès.
Laurent, j'ai essayé ça tantôt.Code: [Sélectionner]static GameWindow& GetInstance()
{
static GameWindow instance;
return instance;
}
En fait le destructeur de ton object static est bien appellé, mais après le main.Vraiment? ça expliquerait pourquoi j'entre jamais dedans avec mon breakpoint.
template <class T>
class CSingleton
...
Mais la je vais plutôt opté pour une solution un peu plus simpliste. Je vais essailler ça ce soirclass GameWindow
{
public:
static GameWindow& GetInstance()
{
static GameWindow instance;
return instance;
}
...
};
Et pourquoi avoir un membre statique (autre que l'instance de la classe) dans une classe singleton ?Parce que j'ai pas dormit de la nuit?
sf::RenderWindow* GameWindow::screen = (sf::RenderWindow*)NULL;
GameWindow* GameWindow::instance =(GameWindow*)NULL;
en déclarant instance comme un pointeur dans le .h
class GameWindow
{
public:
static GameWindow& GetInstance();
private:
GameWindow(void);
~GameWindow(void);
GameWindow(const GameWindow& _source);
GameWindow& operator = (const GameWindow& _source);
static GameWindow instance;
static sf::RenderWindow* screen;
};
#include "GameWindow.h"
GameWindow GameWindow::instance;
GameWindow::GameWindow(void)
{
this->screen = new sf::RenderWindow();
}
GameWindow::~GameWindow(void)
{
delete screen;
}
GameWindow& GameWindow::GetInstance()
{
return instance;
}
je dirais que tu as sur ton système des headers et des binaires de deux versions différentes de la SFML et que tu les mélanges en compilant.
Les fonctionnalités sont gelées