在switch语句中使用operator关键字

时间:2016-10-05 00:05:41

标签: c++ linux

所以我试图在这个switch语句中使用“operator”关键字,但是当我这样做时,我得到错误“错误:在â€:令牌操作符之前的预期类型说明符:” 我没有收到digit关键字的任何错误。有什么想法吗?

for (i=0; i < pf.length(); i++)
  {
    int opn1;
    int opn2;
    int result;
    char token = pf[i];
    switch (token)
      {
         digit:
          {
           chast.push(token); break;
          }
         operator:
          {
           opn2 = chast.top();
           chast.pop();
           opn1 = chast.top();
           chast.pop();
           result = evaluate(opn1, token, opn2);
           chast.push(result);
           break;
          }
      }
  }

2 个答案:

答案 0 :(得分:2)

显示的代码在语法上无效:

  • 它缺少case标签的switch关键字。

  • 它使用关键字operator作为名称。

RE

  

我没有收到数字关键字的任何错误。

...那不是关键字。

Google C ++关键字。让自己a decent C++ textbook了解语言的基本结构。

答案 1 :(得分:0)

在C ++中,operator是一个仅用于运算符重载的关键字。不幸的是,这使得在任何其他情况下使用都是非法的。

代码中定义的“数字”在哪里?