我是 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,配置:调试 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 (__thiscall MathPrg::* )(float,float)' c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 类型的操作数:错误 C2064 : term 不计算为带有 2 个参数的函数 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ========== 创建指向成员 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 (__thiscall MathPrg::* )(float,float)' c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 类型的操作数上:错误 C2064 : term 不计算为带有 2 个参数的函数 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ========== 创建指向成员 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 (__thiscall MathPrg::* )(float,float)' c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 类型的操作数:错误 C2064 : term 不计算为带有 2 个参数的函数 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ========== \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 (__thiscall MathPrg::* )(float,float)' c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 类型的操作数:错误 C2064 : term 不计算为带有 2 个参数的函数 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ========== \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 (__thiscall MathPrg::* )(float,float)' c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 类型的操作数:错误 C2064 : term 不计算为带有 2 个参数的函数 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ========== MathPrg::divide':函数调用缺少参数列表;使用 '&MathPrg::divide' 创建指向成员 c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 的指针:错误 C2171:'*':非法'float (__thiscall MathPrg::* )(float,float)' c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 类型的操作数:错误 C2064 : term 不计算为带有 2 个参数的函数 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ========== MathPrg::divide':函数调用缺少参数列表;使用 '&MathPrg::divide' 创建指向成员 c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 的指针:错误 C2171:'*':非法'float (__thiscall MathPrg::* )(float,float)' c:\documents and settings\chaya\my documents\visual studio 2010\projects\functionarray\functionarray\functionarray.cpp(23) 类型的操作数:错误 C2064 : term 不计算为带有 2 个参数的函数 ========== 构建:0 成功,1 失败,0 最新,0 跳过 ==========