【发布时间】:2021-09-14 05:18:25
【问题描述】:
给定以下函数,即 params() 和 mutable_params():
std::vector<int> params_;
std::vector<int>& params() {
return params_;
}
std::vector<int>* mutable_params() {
return ¶ms_;
}
以下表达式中vec1和vec2有什么区别:
std::vector<int> vec1=params();
std::vector<int> vec2=mutable_params();
【问题讨论】:
-
嗯,一个区别是
vec2行不会编译。 -
std::vector<int> vec2=mutable_params()无法编译,您可能需要std::vector<int> vec2=*mutable_params()。 -
这2种方式允许对向量进行变异,所以命名是错误的......
ByRef/ByPointer会更合适。
标签: c++ pointers reference stdvector