类静态指针这样用是为什么呢?

类静态指针这么用是为什么呢???

class InputManager
{
public:
InputManager();
virtual ~InputManager();
private:
static InputManager* msInputManager;
};

------解决方案--------------------
class InputManager
    {
    public:
        static InputManager* Instance();
        virtual ~InputManager();
protected:
        InputManager();
    private: 
        static InputManager* msInputManager;
    };
------解决方案--------------------
class InputManager
    {
    public:
        static InputManager* Instance();
        virtual ~InputManager();
protected:
        InputManager();
    private: 
        static InputManager* msInputManager;
    };