C ++ appelle une fonction d'un vecteur de pointeurs de fonction dans une classe où la définition de la fonction est dans le principal

Bien, dans mon main j'ai:

void somefunction();
int main()
{
    //bla bla bla
    SomeClass myclass = SomeClass();
    void(*pointerfunc)() = somefunction;
    myclass.addThingy(pointerfunc);

    //then later i do
    myclass.actionWithDiffrentOutcomes();
}

void somefunction()
{
    //some code
}

et dans la classe:

class SomeClass()
{
    public:
        void addThingy(void (*function)());
        void actionWithDiffrentOutcomes();
    private:
        std::vector<void (**)()> vectoroffunctions;
}
SomeClass::addThingy(void (*function)())
{
    vectoroffunctions.push_back(&function);
}
SomeClass::actionWithDiffrentOutcomes()
{
    (*vectoroffunctions[0])();;
}

Je suis une sorte de nouvelle-ish pour les pointeurs, mais j'ai lu sur mon c++ livres, googlé, ext. et cela semble correct, compile, lance mais quand je l'appelle "actionWithDiffrentOutcomes()" je reçois une violation d'accès. Je ne suis pas sûr de quoi faire. il semble correct, mais quelque chose qui est évidemment faux. Alors, comment puis-je appeler une fonction dans une classe lors de la définition est dans un autre?

Je suis en train de faire de cette façon parce que je ne peux pas coder en dur chaque option dans une instruction switch.

source d'informationauteur Steven Venham