[英]Vector of pointers, pointing to objects in vector of objects. How to do that?
[英]Vector pointing to vector of pointers
在我的框架类中,我声明了这个向量: std::vector<sf::Drawable*> drawableStack;
当drawableStack全部填满时,我想在这样的循环中绘制所有对象:
void Framework::drawScreen()
{
window->clear();
std::vector<sf::Drawable*>::iterator itr;
for(itr=drawableStack.begin(); itr!=drawableStack.end(); itr++)
{
window->draw(itr);
}
window->display();
}
window在头文件sf::RenderWindow* window;
并且绘制函数为sf::RenderWindow::draw(const sf::Drawable&)
,错误为error: no matching function for call to 'sf::RenderWindow::draw(std::vector<sf::Drawable*>::iterator&'
。
您忘记了取消引用迭代器。 更改此行:
window->draw(itr);
至
window->draw(**itr);
您必须取消引用两次。 一旦从迭代器到达sf::Drawable*
它指向第二次,因为向量持有指针,并且函数将引用作为参数。
您需要同时取消引用迭代器和指针:
window->draw(**itr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.