在C++中如何从函数返回一个对象数组?
通过返回一个std :: vector。
+1这是答案。 – 2010-11-09 21:14:05
myobject *myfunc()
{
return new myobject[10];
}
但要小心 - 您将数组的所有权转移给调用者,可能是导致内存泄漏的原因。
编辑:返回一个指向数组的指针比返回一个std :: vector要快得多。如果你打算使用std :: vector(正如其他人写的那样),你可能会喜欢这样做:
void myfunc(std::vector<myobject> &result)
{
result.resize(0);
for(int i=0;i<10;++i)
result.push_back(myobject());
}
技术上正确。但是这忽略了这是可怕的代码这一事实。 (编辑:也许它是对象) – 2010-11-09 21:15:28
@John这段代码有什么可怕的?对象与此有什么关系? – 2010-11-09 21:18:45
@Let_Me_Be:以相反的顺序:OP特意询问一组对象。如果你已经连续超过了几天,应该清楚为什么这是不好的。泄漏的内存不好,这个代码是内存泄漏的温床。 – 2010-11-09 21:28:06
你的书说什么? – GManNickG 2010-11-09 21:54:27