Of course you are going to have to pass a pointer. I personally prefer to use some sort of rendering context class for the backbuffer ( basically a fancy wrapper around backbuffer) and a separate class for storing game images.
Each game object would then keep either a pointer or some sort of ID for the images associated with it and request at run time a pointer to the images it needs from the images repository class.
To access other classes (rendering context or images repository) generally you would have to either pass a pointer to your game objects class or create a global static class containing methods for obtaining pointers to various global classes and include header to it with every class definition.