0

是否可以使用 Input 调用成员函数?

void one()
{
}

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

instance.input()
4

3 回答 3

2

如果您的所有方法都具有相同数量的参数(或者最好没有参数),那么您可以使用 std::map 轻松完成此操作。

使用方法名作为映射的键,使用指向方法的指针作为映射中的值。然后在map中查找输入的字符串,通过方法指针执行其对应的方法。

小心使用非静态方法。函数指针和指向静态方法的指针很容易,但非静态方法指针有点困难。有关详细信息,请参阅http://www.goingware.com/tips/member-pointers.html

于 2010-02-26T10:31:44.847 回答
0

听起来像是解释器命令模式的工作。

于 2010-02-26T12:44:17.030 回答
0

不,你不能 - 因为input不是lvalue

于 2010-02-26T10:28:34.003 回答