num2; MathPrg mathP(num1,num2); cin>>num1; 返回0; },c++,function,pointers,C++,Function,Pointers" /> num2; MathPrg mathP(num1,num2); cin>>num1; 返回0; },c++,function,pointers,C++,Function,Pointers" />

C++;函数指针数组错误 我是C++新手,我正在努力使用下面的代码。我总是被星号线给弄错。我做了一些关于为什么它不起作用的研究,但没有发现任何有用的东西。你能看到任何问题,并解释我应该怎么做来解决这个问题吗 // FunctionArray.cpp : Defines the entry pofloat for the console application. // #include "stdafx.h" #include <string> #include <iostream> using namespace std; class MathPrg{ public: MathPrg(float num1, float num2) { num1 = num1; num2 = num2; int choice = presentChoices(); getAnswer(choice, num1, num2); } void getAnswer(int choice,float num1, float num2){ typedef float (MathPrg::*f[4]) (float, float); **f set = {add, subtract, multiply, divide}; float answer = (*set[choice])( num1, num2 );** cout<< answer; } float add(float num1, float num2){ return num1+num2;} float subtract(float num1, float num2){ return num1-num2;} float multiply(float num1, float num2){ return num1*num2;} float divide(float num1, float num2){ return num1/num2;} int presentChoices(){ cout<<"Enter 0 to add \nEnter 1 to subtract \nEnter 2 to multiply\nEnter 3 to divide"; int choice; cin>> choice; return choice; } }; float _tmain(float argc, _TCHAR* argv[]) { float num1, num2; cout<<"Enter two numbers"; cin>> num1>> num2; MathPrg mathP(num1, num2); cin>>num1; return 0; } //FunctionArray.cpp:定义控制台应用程序的pofloat条目。 // #包括“stdafx.h” #包括 #包括 使用名称空间std; 类MathPrg{ 公众: MathPrg(浮点num1,浮点num2) { num1=num1; num2=num2; int choice=presentChoices(); getAnswer(选项,num1,num2); } void getAnswer(整数选择、浮点num1、浮点num2){ typedef float(MathPrg::*f[4])(float,float); **f集={加、减、乘、除}; 浮动答案=(*设置[选择])(num1,num2)** cout>num2; MathPrg mathP(num1,num2); cin>>num1; 返回0; }

C++;函数指针数组错误 我是C++新手,我正在努力使用下面的代码。我总是被星号线给弄错。我做了一些关于为什么它不起作用的研究,但没有发现任何有用的东西。你能看到任何问题,并解释我应该怎么做来解决这个问题吗 // FunctionArray.cpp : Defines the entry pofloat for the console application. // #include "stdafx.h" #include <string> #include <iostream> using namespace std; class MathPrg{ public: MathPrg(float num1, float num2) { num1 = num1; num2 = num2; int choice = presentChoices(); getAnswer(choice, num1, num2); } void getAnswer(int choice,float num1, float num2){ typedef float (MathPrg::*f[4]) (float, float); **f set = {add, subtract, multiply, divide}; float answer = (*set[choice])( num1, num2 );** cout<< answer; } float add(float num1, float num2){ return num1+num2;} float subtract(float num1, float num2){ return num1-num2;} float multiply(float num1, float num2){ return num1*num2;} float divide(float num1, float num2){ return num1/num2;} int presentChoices(){ cout<<"Enter 0 to add \nEnter 1 to subtract \nEnter 2 to multiply\nEnter 3 to divide"; int choice; cin>> choice; return choice; } }; float _tmain(float argc, _TCHAR* argv[]) { float num1, num2; cout<<"Enter two numbers"; cin>> num1>> num2; MathPrg mathP(num1, num2); cin>>num1; return 0; } //FunctionArray.cpp:定义控制台应用程序的pofloat条目。 // #包括“stdafx.h” #包括 #包括 使用名称空间std; 类MathPrg{ 公众: MathPrg(浮点num1,浮点num2) { num1=num1; num2=num2; int choice=presentChoices(); getAnswer(选项,num1,num2); } void getAnswer(整数选择、浮点num1、浮点num2){ typedef float(MathPrg::*f[4])(float,float); **f集={加、减、乘、除}; 浮动答案=(*设置[选择])(num1,num2)** cout>num2; MathPrg mathP(num1,num2); cin>>num1; 返回0; },c++,function,pointers,C++,Function,Pointers,错误: ------已启动生成:项目:FunctionArray,配置:调试Win32------ FunctionArray.cpp c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(22):错误C4867:“MathPrg::add”:函数调用缺少参数列表;使用“&MathPrg::add”创建指向成员的指

错误: ------已启动生成:项目:FunctionArray,配置:调试Win32------ FunctionArray.cpp c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(22):错误C4867:“MathPrg::add”:函数调用缺少参数列表;使用“&MathPrg::add”创建指向成员的指针 c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(22):错误C4867:“MathPrg::subtract”:函数调用缺少参数列表;使用“&MathPrg::subtract”创建指向成员的指针 c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(22):错误C4867:“MathPrg::multiply”:函数调用缺少参数列表;使用“&MathPrg::multiply”创建指向成员的指针 c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(22):错误C4867:“MathPrg::divide”:函数调用缺少参数列表;使用“&MathPrg::divide”创建指向成员的指针 c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23):错误C2171:“*”:在“float”(float,float)类型的操作数上非法 c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23):错误C2064:术语不计算为包含2个参数的函数 =========生成:0成功,1失败,0最新,0跳过========

void getAnswer(int选项,浮点num1,浮点num2){
void getAnswer(int choice,float num1, float num2){
    typedef float (MathPrg::*f) (float, float);
    f set[] = {&MathPrg::add, &MathPrg::subtract, &MathPrg::multiply, &MathPrg::divide};
    float answer = (this->*set[choice])( num1, num2 );
    cout << answer;
}
typedef float(MathPrg::*f)(float,float); f set[]={&MathPrg::add,&MathPrg::subtract,&MathPrg::multiply,&MathPrg::divide}; 浮动答案=(此->*设置[选择])(num1,num2);
cout和您得到了什么错误?您是否尝试了((*f)(float,float))[]?添加到question@user2430018编辑问题下的按钮何处,而不是什么,a_schimpf?