que te parece hacer una clase aparte?. Tene en cuenta que esta idea que te doy la hago en cuanto a mi ignorancia con respecto a herencia de clases. Por ejemplo:
Código C++:
Ver originalclass DirMemoriaImagenes{
private:
vector<ClaseImagen*> __Direcciones;
vector<string> __Identificador;
ClaseImagen* CargarImagen(string Imagen);
public:
ClaseImagen* CargarImagen(const char* PathArchivo);
ClaseImagen* ObtenerImagen(string Imagen);
DirMemoriaImagenes();
~DirMemoriaImagenes();
}
la idea de la clase es la siguiente:
- se carga una vez la imagen en memoria y se guarda en el vector
__Direcciones
- Se puede obtener la direccion de memoria de la imagen (previamente cargada en memoria) mediante el metodo
ObtenerImagen. De esta manera, se carga la imagen solamente 1 vez y el objeto que necesite dibujarla solamente necesitara la direccion de memoria de la misma.
- El vector
__Identificador guarda los nombres con los que se cargaron las imagenes, para buscarlas mas rapido. EJ: Cuando se ejecute el metodo
CargarImagen(string Imagen), se guarda en el vector
__Direcciones la direccion de la imagen cargada y en el vecor
__Identificador el parametro Imagen. Luego, al llamar al metodo
ObtenerImagen(string Imagen), solamente necesitas establecer la posicion del parametro Imagen en el vector
__Identificador, esta posicion va a ser la misma en el vector
__Direcciones de la imagen correspondiente.
-Solamente necesitarias 1 instancia de esta clase, de la cual los demas objetos pueden obtener la direccion de memoria de la imagen que necesiten.
espero que se haya entendido la idea, igualmente hay mejores y mas variadas maneras de hacerlo, este ejemplo es de como lo haria yo :)
saludos.