#ifndef BALL_H #define BALL_H #include "GraphicsObject.h" //#include "PhysicsObject.h" class Ball : public GraphicsObject { public: Ball() : GraphicsObject(&Ball::SetX, this) // pointer to self (specific instance) { instance_num = ++instance_counter; } static void SetX(int &x, void *instance) { Ball *ball = static_cast(instance); ball->x = ball->instance_num; // prove we're accessing the right one return; } private: static int instance_counter; int instance_num; }; int Ball::instance_counter = 0; #endif