【发布时间】:2019-07-03 03:02:55
【问题描述】:
假设我的班级有std::vector<Object*>
应该像这样的方法:
const std::vector<Object*> getSth() const
{
return class_member_vector;
}
转换为:
std::vector<Object*> getSth() const
{
return class_member_vector;
}
它总是安全的,应该总是以这种方式纠正吗?
【问题讨论】:
-
第一个示例中的
const并没有真正提供任何好处。但在安全问题上,这取决于std::vector<Object*>代表什么。 -
由于你是按值返回,所以第一个sn-p返回的
const没有任何作用。根据您的设计,您可能希望将其更改为const std::vector<const Object*>& getSth() const。
标签: c++ pointers const-correctness