我在想,如果以下是返回深度为vector
的对象的安全方式。按值返回对象向量
class MyClass {
//...
}
std::vector<MyClass> get_list(a,b,c) {
// obj is created on the stack
MyClass obj(a,b,c);
std::vector<MyClass> objects();
objects.push_back(obj);
// objects[0] contains a pointer to a stack variable?
return objects
}
特别是,返回的向量如何不包含对堆栈内存位置的引用?
感谢。在我的例子中'MyClass'将包含一些非常大的成员数据矩阵作为成员。如果事情被复制,是否意味着通过'MyClass(large_matrix)'构造'MyClass'也是一个问题?在处理大对象时,标准做法是什么?对不起,新的C++。 – Flash