Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 错误:在';之前应为非限定id=';代币_C++_Linux_G++ - Fatal编程技术网

C++ 错误:在';之前应为非限定id=';代币

C++ 错误:在';之前应为非限定id=';代币,c++,linux,g++,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; } 以下是实现定义: Register(int, int); Register

在使用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;
}
以下是实现定义:

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

    til_amt += amt;
    num_ones += ones;
}

init()函数是内联定义的,只需将字段设置为0。我已经将问题隔离到这些代码行中,我已经搜索了stackoverflow/google的所有地方,但似乎无法解决问题。我甚至尝试将对象实例化拆分为两行,但也没有成功。

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


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

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


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

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

<>从C++标准:

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

1存储类说明符是

storage-class-specifier:
register
static
thread_local
extern
mutable

寄存器
是一个关键字。它不能用作变量

<>从C++标准:

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

1存储类说明符是

storage-class-specifier:
register
static
thread_local
extern
mutable

寄存器
可能是一个关键字。我不记得它是否在标准中定义过,但至少某些编译器是这样对待它的。@matthewfreilhofer。James Root所说的是,你需要做的就是将注册登记到另一个变量名(这不是一个C++关键字)。所以只要把它改成register1或者其他什么…
register
可能是一个关键字。我不记得它是否在标准中定义过,但至少某些编译器是这样对待它的。@matthewfreilhofer。James Root所说的是,你需要做的就是将注册登记到另一个变量名(这不是一个C++关键字)。所以只要把它改成register1之类的。。。