0

Input を使用してメンバー関数を呼び出すことは可能ですか?

void one()
{
}

cout << "enter input:" << endl;
cin >> input;  //where input is "one"

instance.input()
4

3 に答える 3

2

すべてのメソッドに同じ数の引数がある場合 (またはできれば引数がない場合)、std::map を使用して簡単にこれを行うことができます。

メソッド名をマップのキーとして使用し、メソッドへのポインタをマップの値として使用します。次に、入力された文字列をマップで検索し、メソッド ポインターを介して対応するメソッドを実行します。

非静的メソッドには注意してください。関数ポインタと静的メソッドへのポインタは非常に簡単ですが、非静的メソッド ポインタは少し難しくなります。詳細については、 http://www.goingware.com/tips/member-pointers.htmlを参照してください。

于 2010-02-26T10:31:44.847 に答える
0

いいえ、できません -はlvalueinputではないためです。

于 2010-02-26T10:28:34.003 に答える