#include <iostream>
using namespace std;

class A {
public:
	typedef void (A::*RunPtr)(int);
	RunPtr Run;

    A()
    {
        Run = &A::RunOff;
    }

    void SetOn(bool value)
    {
        if (value)
            Run = &A::RunOn;
        else
            Run = &A::RunOff;
    }

    void RunOn(int param)
    {
        //RunOn stuff here
        cout << "RunOn: " << param << endl;
    }

    void RunOff(int param)
    {
        //RunOff stuff here
        cout << "RunOff: " << param << endl;
    }
};

int main() {
	A a;
	a.SetOn(true);
	(a.*a.Run)(1);
	a.SetOn(false);
	(a.*a.Run)(2);
	return 0;
}