MyClass* const Func(const std::string& statename)
因为这个覆盖率给出了错误
返回类型上的解析警告 (PW.USELESS_TYPE_QUALIFIER_ON_RETURN_TYPE) 类型限定符是无意义的。
我们真的需要在这里删除 const 吗?
MyClass* const Func(const std::string& statename)
因为这个覆盖率给出了错误
返回类型上的解析警告 (PW.USELESS_TYPE_QUALIFIER_ON_RETURN_TYPE) 类型限定符是无意义的。
我们真的需要在这里删除 const 吗?
警告是正确的。MyClass* const
不需要。应该很MyClass*
简单。但是,您不需要删除它,但应该删除它。
原因是,理论上 MyClass* const
会阻止Func()
编辑的返回值。但即使没有const
,那无论如何也无法编辑,因为它不是左值。请参阅此处的演示。所以有/没有const
,编译器总是会产生错误,试图修改Func()
.
const
返回类型 ( ) 中的MyClass* const
确实完全没有意义。同时,除了使代码更冗长之外,它并没有什么坏处。我个人会删除它。
要理解它为什么没有意义,请考虑以下几点:
MyClass* p = Func(statement);
有什么不同const
?
换句话说,T* const
从概念上讲,返回与返回没有什么不同const int
。
您无需删除const
即可获得工作代码,但如果没有无意义的const
. 这也是“错误”前面的“警告”词所说的。