C++ 错误:在';之前应为非限定id=';代币
在使用g++时,我一直遇到这个错误 下面是有问题的代码行: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
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之类的。。。