error:expected unqualified-id before '=' token

error:expected unqualified-id before '=' token

我在使用 g++ 时不断收到此错误。

这是有问题的代码行:

Register register = new Register(til_amt, num_ones);

header 定义如下:

Register(int, int);

这是实现定义:

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

    til_amt += amt;
    num_ones += ones;
}

init() 函数是内联定义的,只是将字段设置为 0。我已将问题隔离到这些代码行,并且我搜索了整个 Whosebug/google,但似乎无法找到解决问题。我什至尝试将 object 实例化分成 2 行,但这也不起作用。

register是关键字,所以不能作为变量名使用。将其重命名为任何其他名称,它应该可以工作。

它应该向编译器提示变量可以存储在寄存器中,但看起来大多数编译器会自己决定这一点(有点像 inline,虽然 inline有更多的意义)。

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

来自 C++ 标准:

7.1.1 Storage class specifiers [dcl.stc]

1 The storage class specifiers are

   storage-class-specifier:  
      register
      static
      thread_local
      extern
      mutable