Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用输入调用成员函数_C++_Function_Member_Cin - Fatal编程技术网

C++ 使用输入调用成员函数

C++ 使用输入调用成员函数,c++,function,member,cin,C++,Function,Member,Cin,是否可以使用输入调用成员函数 void one() { } cout << "enter input:" << endl; cin >> input; //where input is "one" instance.input() void one() { } 不能输入//其中输入为“一” instance.input() 不,您不能-因为输入不是一个参数。如果您的所有方法都有相同数量的参数(或者最好没有参数),那么您可以使用std::map轻松完成这

是否可以使用输入调用成员函数

void one()
{
}

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

instance.input()
void one()
{
}
不能输入//其中输入为“一”
instance.input()

不,您不能-因为
输入
不是一个参数。

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

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


使用非静态方法时要小心。函数指针和指向静态方法的指针非常容易,但非静态方法指针要困难一些。有关更多信息,请参阅。

听起来像是一项关于和模式的工作。

您能详细说明一下吗?你想调用一个名为输入的函数吗?这是可能的,但不是初学者的任务。你要么制作一个函数和名称的列表/表格,要么修改语言为你制作这样一个列表。除了C++之外,你还想尝试一种语言。那么,到底有没有办法完成这一任务呢?否则我将不得不使用大量的IF语句。如果(输入=“一”),则。。。。yada yada。如果Patricks的答案对您有利,您应该接受它(使用答案左侧的钩子完成)。我认为您也可以使用boost::bind和boost::function处理不同数量的参数。