2

これは初心者の質問のように思えるかもしれませんが、私はまだ頭をポインターに巻き付けようとしています。具体的には、関数のポインター。たとえば、いくつかの関数を持つ 2 つのクラスがあるとします (以下にいくつかの疑似コードで表されています)。

ClassA {
    void mainFunction();
    unknownReturnType getFunction();
};
ClassB {
    int mainFunction(int a, int b);
    unknownReturnType getFunction(int a, int b);
};

ここで、別のクラスで、各クラスの関数を呼び出し、その関数が事前定義されたパラメーターを使用しgetFunction()てクラスの関数の参照を返すようにしたいとします。mainFunction()つまり、私が次のことをするとします。

ClassB B;
unknownReturnType B_Function = B.getFunction(5, 6);

B_Function は、5 と 6 の定義済みパラメータを持つobject へBの「参照」(正しい用語かどうかはわかりません) になるはずです。mainFunction()

説明するのはちょっと難しいですが、最終的にはクラスのリストを確認できるようにしたいと考えています (ユーザーは特定のオプションを選択し、各オプションは特定のクラスの機能に関連付けられます)。各クラスには、getFunction()クラスが事前定義されたパラメーターを持つ関数の「参照」を返す があります。次に、どういうわけか、ユーザーが対応するオプションを選択したときに、その参照された関数を実行できるようにしたいと考えています。

役立つもう1つの例:

ClassA A;
int ChosenOption;

unknownReturnType Option1 = A.getFunction(10);
unknownReturnType Option2 = A.getFunction(15);

cout << "Select option 1 or 2" << endl;
cin >> ChosenOption;

if(ChosenOption == 1) Execute Option1;
else Execute Option2;

この質問が少し紛らわしい場合は申し訳ありません。私はできる限りそれを説明しようとしました。

4

2 に答える 2