gpt4 book ai didi

c++ - 迂腐的 gcc 警告 : type qualifiers on function return type

转载 作者:IT老高 更新时间:2023-10-28 12:12:30 29 4
gpt4 key购买 nike

当我第一次使用 GCC 4.3 编译我的 C++ 代码时(在使用 -Wall -Wextra 选项成功编译它并且在 4.1、4.0、3.4 上没有警告之后)我突然明白了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 吗?

最佳答案

它不违反标准。这就是为什么它们是警告而不是错误

确实你是对的——前面的 const 是多余的。编译器会警告您,因为您添加了在其他情况下可能有意义的代码,但在这种情况下没有任何意义,并且它希望确保您稍后在返回值最终变成可修改时不会感到失望。

关于c++ - 迂腐的 gcc 警告 : type qualifiers on function return type,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1134237/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com