4
MyClass* const Func(const std::string& statename)

因为这个覆盖率给出了错误

返回类型上的解析警告 (PW.USELESS_TYPE_QUALIFIER_ON_RETURN_TYPE) 类型限定符是无意义的。

我们真的需要在这里删除 const 吗?

4

3 回答 3

6

警告是正确的。MyClass* const不需要。应该很MyClass*简单。但是,您不需要删除它,但应该删除它。

原因是,理论上 MyClass* const会阻止Func()编辑的返回值。但即使没有const,那无论如何也无法编辑,因为它不是左值。请参阅此处的演示。所以有/没有const,编译器总是会产生错误,试图修改Func().

于 2012-01-23T11:02:53.157 回答
5

const返回类型 ( ) 中的MyClass* const确实完全没有意义。同时,除了使代码更冗长之外,它并没有什么坏处。我个人会删除它。

要理解它为什么没有意义,请考虑以下几点:

MyClass* p = Func(statement);

有什么不同const

换句话说,T* const从概念上讲,返回与返回没有什么不同const int

于 2012-01-23T10:53:25.447 回答
3

无需删除const即可获得工作代码,但如果没有无意义的const. 这也是“错误”前面的“警告”词所说的。

于 2012-01-23T10:51:39.380 回答