看到错误,需要修改一下:
一.在讲解ChangeToSuffix()函数的第2点应该改为:
②如果str是“)”,则要考虑stack_B的栈顶是不是“(”,是的话就将“(”出栈stack_B;如果不是,则依次将stack_B出栈一个元素(操作符),然后将其推入栈stack_A,直到stack_B的栈顶为“(”则不进栈stack_A,但依旧要把“(”从栈stack_B中推出。
二.在Calculate函数中没有对于除数为0时的处理,可以加一个else语句,如下:
case '/':
dbl = stack.top();
stack.pop();
if(dbl != 0.000)
{
dbl = stack.top() / dbl;
stack.pop();
stack.push(dbl);
}
else
return 0.0;
break;