This is more of a design decision than a technical issue.
So, I'm wondering about this. I have this design decision, where I can store the sprites of several objects inside them, and request them when I want to draw them (every frame), or I can store all the sprites in a container (vector, or a map, a map would be ideal, I guess) inside the class responsible for drawing the stuff.
The thing is, the position is of each object is saved inside the object itself, so it's much easier to just ask "gimme your sprite" and receive a ready sprite at the right location and draw them, then to keep track of which sprite belongs to each object, and have to ask the object for his position, then set the sprite coordinates.
I'll have objects die (it's a game after all, stuff dies), if I keep the sprites inside the class, I'll have to keep track of which objects died and remove their sprites too. If I keep on the objects, once they die, they will be removed and it won't be on the list of things to draw anymore.
The only drawbacks I can see to keeping the sprites inside the objects they belong to is that the objects will have to know the size of the map squares to calculate their position properly AND it can be slow if copying sprites is slow. Alternatively, I can just make a member function to return a pointer to the sprite and draw the sprite from inside the object directly, but maybe that hurts encapsulation?
Loads of options, loads of ways to shoot yourself in the foot in the future.