最后一行我不断收到错误,未解决的外部问题。
bool checker(string roman);
// Adds each value of the roman numeral together
int toDecimal(string, bool (function)(string));
int convert(string roman, int i);
int main(){
string roman;
cout << "This program takes a roman numeral the user enters then converts it to decimal notation." << endl;
cout << "Enter a roman numeral: ";
cin >> roman;
transform(roman.begin(), roman.end(), roman.begin(), toupper);
cout << roman << " is equal to " << toDecimal(roman, *checker) << endl;
}
如果我将原型更改为
int convert(string roman, int i);
int toDecimal(string, bool* (*function)(string));
最后一行
cout << roman << " is equal to " << toDecimal(roman, *checker(roman)) << endl;
我明白了
非法间接,“错误 2 错误 C2664:'toDecimal':无法将参数 2 从 'bool' 转换为 'bool *(__cdecl *)(std::string)'”
和
(*) 的操作数必须是指针