我在一课上有以下代码:
class A
{
std::vector<Parameter*> params;
std::vector<Parameter*> getParamVector() {return params;}
void addOneParam(Parameter* param)
{
params.push_back(param);
}
}
在另一个类B类中,我尝试通过执行以下操作将项目添加到params矢量中:
classA_Ptr->getParamVector().push_back(aParamPtr);
但是在上述调用之后,参数向量的大小仍为0。
我必须添加上述addOneParams(Parameter* param)
方法将项目添加到params矢量中。为什么?
getParamVector()
返回复制的params
。因此,当您使用push_back
它时,您将添加一个立即vector
删除的临时文件。这绝不会影响params
的大小。
如果你希望能够通过这样做getParamVector()
,你必须返回一个参考来params
代替:
std::vector<Parameter*>& getParamVector() {return params;}
^^^
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句