我有智能指針的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
因爲你需要一個可變的空圖像,如果圖像無法找到 - 不行! –