我使用NetBeans与c++插件(版本8.0.2)。我有一个名为"设置"的类,它给了我大量的虚假错误,使得无法使用NetBeans调试该类。
所有的错误都从hpp
文件开始:
bool SetSettingString(std::string Name, std::string defaultValue, bool override = true);
bool SetSettingFloat(std::string Name, float defaultValue, bool override = true);
bool SetSettingInt(std::string Name, int defaultValue, bool override = true);
bool SetSettingBool(std::string Name, bool defaultValue, bool override = true);
bool SetSettingDouble(std::string Name, double defaultValue, bool override = true);
错误从第一个defaultValue
开始,也在cpp
文件中,在这一点上,NetBeans突出了几乎所有的代码红色,因为他不能解析任何标识符。代码很干净,编译时甚至没有警告。
我的第一个猜测是,NetBeans将defaultValue
以某种方式解释为关键字,但将其更改为另一个名称不会改变任何东西。我还在SO上发现了清除usercache的建议,我这样做了(删除~/.cache/netbeans/8.0.2/
下的index
目录)。
有没有人对如何解决这个问题有任何建议?提前感谢!
override
是一个关键字(只有在适当的上下文中使用),因为它可能会混淆NetBeans。
它不是正常的关键字(如for
等),不能用作标识符-由于向后兼容(与代码像你的:)),override
将被视为关键字,只有当它出现在方法声明之后:
void fun() override;
这段代码强制编译器检查基类是否有虚方法fun
。
所以您的代码是正确的,但是检查关键字的简单IDE解析器可能会丢失。