我有智能指针的vector
到Image
class
的载体里面,像这样:如何参考返回一个对象,它是智能指针
class Controller
{
//...
typedef std::vector<std::shared_ptr<Image>> ImageVector;
ImageVector mImageVector;
}
我有方法必须返回一个参考到Image
,就像这样:
Image& Controller::getImage(const std::string name)
{
for (auto& image : mImageVector)
{
std::shared_ptr<Image> p = image;
if(p->getName() == name) //find the correct pointer to image in the vector
return p.get; // returns a reference to a image <---ERROR!! What should be here?
}
}
我怎么能返回引用一个对象,它的shared_ptr对这些对象的一个向量里面?
基本上我的主意是使搜索具有相同的字符串(在对象)的矢量作为该方法的参数的方法。如果找到,则返回对该对象的引用(不是对shared_ptr,而是对象本身)。
做到像你,如果shared_ptr的是不是矢量的内部。 – juanchopanza
因为你需要一个可变的空图像,如果图像无法找到 - 不行! –