よしであるクラス内の関数ポインタのベクトルから関数を呼び出して、私のメインの中で私が持っているC++、関数定義がメイン
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])();;
}
私はポインターへの新しいアイディアの一種ですが、私のC++の本を読んで、グーグルでエクステンションしました。これは正しく、コンパイル、実行されますが、私は "actionWithDiffrentOutcomes()"と呼び出すとき、私はアクセス違反を取得します。私は何をすべきか分からない。それは正しいようですが、何かが明らかに間違っています。では、定義が別のクラスにあるときにクラス内から関数を呼び出すにはどうすればよいですか?
私はすべてのオプションをswitch文にハードコードすることができないので、このようにしています。
サンプルコードはコンパイルされません。構文を2回確認して質問を編集してください。 – congusbongus
このコードはコンパイルされません。 [短い、自己完結型、正しい(コンパイル可能)、例](http://sscce.org/)をご提供ください。 – Johnsyweb