当我第一次使用GCC 4.3编译我的C ++代码时(成功地在4.1、4.0、3.4上使用-Wall -Wextra
选项进行了警告的情况下成功编译了它)之后,突然出现了一系列错误warning: type qualifiers ignored on function return type
。
考虑temp.cpp
:
class Something
{
public:
const int getConstThing() const {
return _cMyInt;
}
const int getNonconstThing() const {
return _myInt;
}
const int& getConstReference() const {
return _myInt;
}
int& getNonconstReference() {
return _myInt;
}
void setInt(const int newValue) {
_myInt = newValue;
}
Something() : _cMyInt( 3 ) {
_myInt = 2;
}
private:
const int _cMyInt;
int _myInt;
};
正在运行g++ temp.cpp -Wextra -c -o blah.o
:
temp.cpp:4: warning: type qualifiers ignored on function return type
temp.cpp:7: warning: type qualifiers ignored on function return type
有人可以告诉我我在做什么违反C ++标准吗?我想按价值返回时,领导const
是多余的,但是我很难理解为什么有必要用它来产生警告。还有其他地方我应该放弃const吗?