0
似乎是对feed矢量的迭代不会调用绘制函数。我在里面添加了一些断点,但没有一个被触发。对矢量的迭代不会调用函数
数据是由我的程序的其他部分传递的字符串矢量,它可以正常工作(输出文件很好)。
std::vector<std::unique_ptr<NewsRenderer>> feed;
std::unique_ptr<NewsRenderer> ptr=std::make_unique<NewsRenderer>(NewsRenderer(sf::Vector2i(300, 100), "test-title", "test-url"));
feed.push_back(std::move(ptr));
myfile.close();
while (window.isOpen())
{
window.clear(sf::Color::White);
for (int i = 0; i < feed.size(); i++)
{
feed[i]->draw(0, 100 * i);
}
window.display();
}
有NewsRenderer.h
#include "News.h"
#include <iostream>
class NewsRenderer
{
public:
NewsRenderer(std::string title, std::string url, std::string decription="");
void draw(int x, int y);
~NewsRenderer();
private:
News* newsData;
};
而且NewsRenderer.cpp
NewsRenderer::NewsRenderer(std::string title, std::string url, std::string decription)
{
newsData = new News{ title, url, decription };
}
void NewsRenderer::draw(int x, int y)
{
draw(title, x, y); //magic, but I didn't want to use any libraries in this example
}
NewsRenderer::~NewsRenderer()
{
}
所以我的问题是:这是怎么回事?我该如何解决它?
PS。我试图保持简单,所以如果我跳过任何重要的细节,让我知道,我会交付。
如果在调试器中逐行执行代码,它看起来像是应该如何工作? –
你的问题是什么? –
@Someprogrammerdude是的。它的工作,直到它'饲料[我] - >绘制'。然后它跳过这一行而不跳入绘图功能。 – frogi16