小编use*_*200的帖子

将函数参数添加到矢量

来自Java背景我很困惑C++如何允许按值传递对象.关于何时通过值传递对象,我有一个概念上的疑问:

void add_to_vector(vector<SomeClass>& v, SomeClass var) {
    v.push_back(var);
}
Run Code Online (Sandbox Code Playgroud)

这在概念上是否正确?这就是为什么我觉得这是错误的:var正在通过值传递,并且对象的内存将在函数调用的堆栈上分配.然后将其添加到矢量中.在函数调用结束时,堆栈将被清除,因此被引用的对象var也将被清除.因此,vector现在将包含一个在函数调用后不再存在的对象.

我错过了什么吗?

c++ vector parameter-passing pass-by-value

4
推荐指数
2
解决办法
112
查看次数

标签 统计

c++ ×1

parameter-passing ×1

pass-by-value ×1

vector ×1