错误:在' ='之前预期的不合格ID代币

时间:2015-12-05 05:37:07

标签: c++ linux g++

使用g ++时,我一直收到此错误。

以下是有问题的代码行:

Register register = new Register(til_amt, num_ones);

这里是标题定义:

Register(int, int);

以下是实施定义:

Register::Register(int amt, int ones)
{
    init();

    til_amt += amt;
    num_ones += ones;
}

init()函数是内联定义的,只是简单地将字段设置为0.我已经将问题隔离到这些代码行,并且我已经在遍历stackoverflow / google上进行了搜索,并且可以'似乎解决了这个问题。我甚至尝试将对象实例化分成2行,但这也不起作用。

2 个答案:

答案 0 :(得分:3)

register是一个关键字。它不能用作变量。

来自C ++标准:

  

7.1.1存储类说明符 [dcl.stc]

     

1存储类说明符是

   storage-class-specifier:  
      register
      static
      thread_local
      extern
      mutable

答案 1 :(得分:1)

register是一个关键字,因此您无法将其用作变量名称。将其重命名为其他任何内容都应该有效。

应该向编译器暗示变量可以存储在寄存器中,但看起来大多数编译器会自行决定(有点像inline,尽管inline有更多意)。