Puck2099
06/04/2009, 17:59
Hola,
No sé si será el sueño o qué me pasa, pero llevo un buen rato "atascado" con los static, sé que alguna tontería se me está pasando, pero ahora no lo veo, así que os cuento a ver si alguien me echa una mano...
Quiero tener una clase que sirva como repositorio de imágenes, para cargarlas todas allí en un momento dado y luego ya acceder a ellas cuando las necesite.
Para esto quiero tener un miembro estático por cada imagen y una función estática en la clase para cargarlas todas.
Mi código es el siguiente:
Fichero de cabecera:
#ifndef IMGS_H
#define IMGS_H
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
class Imgs
{
public:
Imgs();
virtual ~Imgs();
static void loadImgs();
static SDL_Surface * gr_elvis;
protected:
private:
};
#endif // IMGS_H
Fichero de "código":
#include "imgs.h"
Imgs::Imgs()
{
//ctor
}
Imgs::~Imgs()
{
//dtor
}
void Imgs::loadImgs()
{
SDL_Surface * tmp;
tmp = SDL_LoadBMP ("gr_elvis.bmp");
gr_elvis = SDL_DisplayFormat (tmp);
SDL_FreeSurface (tmp);
SDL_SetColorKey (gr_elvis, SDL_SRCCOLORKEY, SDL_MapRGB (gr_elvis->format, 248, 64, 248) );
}
El error que me da es:
undefined reference to `Imgs::gr_elvis'
¿Alguna idea?
Muchas gracias :brindis:
No sé si será el sueño o qué me pasa, pero llevo un buen rato "atascado" con los static, sé que alguna tontería se me está pasando, pero ahora no lo veo, así que os cuento a ver si alguien me echa una mano...
Quiero tener una clase que sirva como repositorio de imágenes, para cargarlas todas allí en un momento dado y luego ya acceder a ellas cuando las necesite.
Para esto quiero tener un miembro estático por cada imagen y una función estática en la clase para cargarlas todas.
Mi código es el siguiente:
Fichero de cabecera:
#ifndef IMGS_H
#define IMGS_H
#include <SDL/SDL.h>
#include <SDL/SDL_image.h>
class Imgs
{
public:
Imgs();
virtual ~Imgs();
static void loadImgs();
static SDL_Surface * gr_elvis;
protected:
private:
};
#endif // IMGS_H
Fichero de "código":
#include "imgs.h"
Imgs::Imgs()
{
//ctor
}
Imgs::~Imgs()
{
//dtor
}
void Imgs::loadImgs()
{
SDL_Surface * tmp;
tmp = SDL_LoadBMP ("gr_elvis.bmp");
gr_elvis = SDL_DisplayFormat (tmp);
SDL_FreeSurface (tmp);
SDL_SetColorKey (gr_elvis, SDL_SRCCOLORKEY, SDL_MapRGB (gr_elvis->format, 248, 64, 248) );
}
El error que me da es:
undefined reference to `Imgs::gr_elvis'
¿Alguna idea?
Muchas gracias :brindis: