Beispiel:SDL - Mit einem std :: vector mit SDL_Texture funktioniert nicht, Array funktioniert
class DefaultTexture
{
public:
bool loadFromFile(std::string path);
void render(int x, int y);
protected:
SDL_Texture* mTexture;
};
main:(...)
DefaultTexture mCards[2];
DefaultTexture X;
X.loadFromFile("Data/basic_card.png");
DefaultTexture Y;
Y.loadFromFile("Data/basic_card.png");
mCards[0] = X;
mCards[1] = Y;
mCards[0].render();mCards[1].render();
Das funktioniert gut (ich beide Bilder sehen kann) Wenn ich std :: vector stattdessen kann ich nur siehe den ersten.
std::vector<DefaultTexture> mGG;
DefaultTexture X;
X.loadFromFile("Data/basic_card.png");
DefaultTexture Y;
Y.loadFromFile("Data/basic_card.png");
mGG.push_back(X); mGG.push_back(Y);
mGG[0].render(); mGG[1].render();
Kann jemand mir erklären, warum arbeiten seine nicht? (Egal ob ich 2 oder 100 verwende, kann ich nur die erste sehen)
Ist es ein Tippfehler, dass einer Ihrer Anrufe Pars zu machen hat, und der andere nicht? (mGG [0] .render; mGG [1] .render();) – JGroven
Ja, ich habe nur vergessen, es hier aufzuschreiben. – AutobahnPolizei
Mit einem Debugger können Sie überprüfen, ob die Daten korrekt in den Vektor geschoben werden? Es könnte sich um einen fehlerhaften Kopierkonstruktor handeln. Ist dies auch der eigentliche Code? Wie es aussieht, könnte der Fehler etwas anderes sein. – ZeroUltimax