C++ eclipse为常量参数提供了“无效参数”
问题描述:
我正在使用Eclipse Luna 2 CDT并且在索引器中遇到了一个奇怪的问题。索引器失败,参数为“const”。我正在使用C++ 11和其他C++ 11函数正常工作。C++ eclipse为常量参数提供了“无效参数”
样例类
class Test {
public:
int getX();
}
这个作品没有问题日食
void method(Test& t) {
t.getX();
}
这给了奇怪的无效的参数异常:无效参数 '考生:INT的getX()'
void method(const Test& t) {
t.getX(); //ERROR: Invalid arguments in eclipse
}
我的问题是为什么Eclipse不能使用const参数。这个作品找到与构建gcc构建没有问题。
答
C++编译器,为了防止你意外修改对象,常量不能调用非const对象的后缀方法。
我们能够解决这样的:
int getX() const;
const对象和非const对象都可以调用它。
为什么铿锵声编译器工作,也许是一个铛问题(我们可以稍后搜索)或一些优化会导致忽略检查。
地址:
铛C++ unassignedclangbugs RESO DUPL 没有错误调用const对象和别的东西上非const方法。
我认为这是叮当问题,新版本可能会修复。
不回答你的问题。有一个C++语法的问题,关键字Class,字母c必须小写,去掉括号。 – 2015-04-03 01:13:22
修正了示例代码 – BSingh 2015-04-03 01:16:00
const t只能调用const函数。像这样修复:int getX()const; – 2015-04-03 01:16:23