我正在使用 openFrameworks 尝试创建一个指向存储在类中的图像 vector 的指针。我正在创建一种图像序列编辑器。一侧是图像网格,另一侧是查看器区域。用户可以单击包含图像序列的网格单元格以将其显示在查看器区域中。
在我的 GridElement header 中我有:
vector<ofImage> *getImages();
在我的 GridElement 的 cpp 文件中,我有:
vector<ofImage> *GridElement::getImages(){
return &images;
}
这是一个 vector 函数,用于返回对称为图像的图像 vector 的引用。
然后在我的查看器类中,我尝试访问 &images 以便根据我的查看器类显示这些图像。
我使用 for 循环完成了此操作,以加载该对象的所有 15 个实例。
for(int i = 0; i < 15; i++){
viewImages = grid[i].getImages();
}
这表明没有错误。然后我使用变量 currentFrame 对我的图像取模,它只是一个保持计数的整数。
currentFrame = (currentFrame +1)%viewImages->size();
当我在我的显示函数中绘制它时
viewImages[currentFrame].draw(504, 0);
此行不起作用,错误“没有成员调用 draw”
还尝试将其作为指针调用,但我在 Xcode 中收到一条错误消息,提示它不是指针。
viewImages[currentFrame]->draw(504, 0);
如有任何建议,我们将不胜感激!
最佳答案
你的 GridElement::getImages()
返回指向 std::vector<ofImage>
的指针.
在这种情况下,运算符 []
用于访问内存地址的方式,不是 the one provided by std::vector
.
这个:
viewImages[currentFrame].draw(504, 0);
应该是:
(*viewImages)[currentFrame].draw(504, 0);
关于c++ - 指向图像 vector 的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34086016/