QT 创建器错误(运算符 + 不匹配)
QT Creator Error (no match for operator+)
我正在尝试在QT Creator 5.6.0中构建一个反向波兰符号计算器。但是,每次构建代码时,我都会收到以下错误:
与"运算符+"不匹配(操作数类型为"双精度"和"QCharRef")
下面是出现问题的代码片段。(我用了 4 个星号来标记发生错误的行)
double MainWindow::runCalculation(QString correctPostfix)
{
QStack<double> postfixStack;
for(int i = 0;i< correctPostfix.length();i++) {
if(correctPostfix[i] == ' ' || correctPostfix[i] == ',') continue;
else if(isOperator(correctPostfix[i])) {
double val2 = postfixStack.top(); postfixStack.pop();
double val1 = postfixStack.top(); postfixStack.pop();
double result = performOp(correctPostfix[i], val1, val2);
postfixStack.push(result);
}
else if(isOperand(correctPostfix[i])){
double operand = 0;
while(i<correctPostfix.length() && isOperand(correctPostfix[i])) {
**** operand = operand + (correctPostfix[i]);
i++;
}
i--;
postfixStack.push(operand);
}
}
在我尝试将其移动到QT之前,代码运行良好。 下面是我在控制台中运行时用于此函数的代码。
double calculate(string correctPostfix)
{
stack<double> postfixStack;
for(int i = 0;i< correctPostfix.length();i++) {
if(correctPostfix[i] == ' ' || correctPostfix[i] == ',') continue;
else if(isOperator(correctPostfix[i])) {
double val2 = postfixStack.top(); postfixStack.pop();
double val1 = postfixStack.top(); postfixStack.pop();
double result = performOp(correctPostfix[i], val1, val2);
postfixStack.push(result);
}
else if(isOperand(correctPostfix[i])){
double operand = 0;
while(i<correctPostfix.length() && isOperand(correctPostfix[i])) {
operand = (operand*10) + (correctPostfix[i] - '0');
i++;
}
i--;
postfixStack.push(operand);
}
}
return postfixStack.top();
}
操作数 = 操作数 + (正确后缀[i]);
像这样制作
QString currentPostfixStr(correctPostfix[i]);
operand = operand + currentPostfixStr.toDouble();
而这让QString
双重计算(字符串正确后缀)
你的意思是代码:
正确后缀[i] - '0'
相关文章:
- 在使用累加时,C++中的运算符+不匹配
- 我在 .h 中有一个枚举类,并且在.cpp错误中有一个运算符重载:与"运算符<<不匹配
- 为什么我收到错误:"运算符<<不匹配?
- 不显示匹配运算符
- 映射迭代器与运算符不匹配
- 与"运算符<<"C++不匹配
- 与"运算符>>"不匹配(操作数类型为"QDataStream"和"QJsonObject")
- 与标准中的"运算符<<"不匹配
- 运算符不匹配*=
- 不断收到错误" 与"运算符>>不匹配";
- 编译我的 3 个文件时,我收到错误,说"运算符="不匹配
- C++ 模板与运算符<不匹配
- 与"运算符="不匹配
- 代码块编译错误与运算符<<不匹配
- 错误:运算符 [] 不匹配。在比较列表中的 int 和 int 时<int>,
- 解决错误:运算符 [] 不匹配
- 错误:与"运算符>>"不匹配(操作数类型为"std::istream
- 与"运算符[]"不匹配(操作数类型为"std::unique_ptr<std::vector<int> >"和"int")
- 错误:与“运算符 []”不匹配
- C++ 设置:不匹配 - 运算符