Es scheint, dass Iteration über Feed-Vektor keine Zeichenfunktionen aufruft. Ich habe ein paar Breakpoints innerhalb hinzugefügt und keiner von ihnen wurde ausgelöst.Iteration über Vektor ruft keine Funktionen auf
Daten sind ein Vektor von Strings, die von einem anderen Teil meines Programms geliefert werden, und es funktioniert korrekt (Ausgabedatei ist in Ordnung).
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();
}
Es gibt 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;
};
Und 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()
{
}
Also meine Fragen sind: Was ist los? Und wie kann ich es reparieren?
PS. Ich habe versucht, es einfach zu halten, also lassen Sie mich wissen, wenn ich irgendwelche wichtigen Details überspringe, und ich werde liefern.
Wenn Sie den Code Zeile für Zeile in einem Debugger durchlaufen, scheint es zu funktionieren, wie es sollte? –
Und was ist Ihre Frage? –
@Someprogrammerdude Ja. Es funktioniert, bis es zu "feed [i] -> draw" kommt. Dann überspringen Sie einfach diese Zeile, ohne in die Zeichenfunktion zu springen. – frogi16