例子:SDL - 使用與SDL_Texture一個std ::矢量不起作用,陣列工作正常
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();
這工作正常(我可以同時看到圖片)如果我使用std :: vector的,而不是我只能見第一個。
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();
任何人都可以向我解釋爲什麼它不工作? (無論我使用2還是100,我只能看到第一個)
它是一個錯字您的呼叫之一粉刷括號,和其他沒有? (mGG [0] .render; mGG [1] .render();) – JGroven
是的,我忘了在這裏寫下來。 – AutobahnPolizei
使用調試器,你可以驗證數據是否正確地推向矢量?這可能是一個錯誤的複製構造函數的情況。另外,這是實際的代碼?從它的外觀來看,這個錯誤可能會有所不同。 – ZeroUltimax