Ich möchte Texturen laden, und dann von mehreren Objekten verwendet werden. Würde das funktionieren?C++: Referenz und Zeiger Frage (Beispiel in Bezug auf OpenGL)
class Sprite
{
GLuint* mTextures; // do I need this to also be a reference?
Sprite(GLuint* textures) // do I need this to also be a reference?
{
mTextures = textures;
}
void Draw(textureNumber)
{
glBindTexture(GL_TEXTURE_2D, mTextures[ textureNumber ]);
// drawing code
}
};
// normally these variables would be inputed, but I did this for simplicity.
const int NUMBER_OF_TEXTURES = 40;
const int WHICH_TEXTURE = 10;
void main()
{
std::vector<GLuint> the_textures;
the_textures.resize(NUMBER_OF_TEXTURES);
glGenTextures(NUMBER_OF_TEXTURES, &the_textures[0]);
// texture loading code
Sprite the_sprite(&the_textures[0]);
the_sprite.Draw(WHICH_TEXTURE);
}
Und gibt es einen anderen Weg, ich sollte dies tun, auch wenn es funktionieren würde?
Danke.
einfach mal Hinweis. Wenn Sie etwas als Referenz definieren (oder deklarieren), bedeutet das normalerweise, dass etwas mit Ihrem Design nicht stimmt. – Falmarri
@Falmarri, was meinst du? Stellen Sie vor, dass ein Klassenfeld, das eine Referenz oder eine lokale Variable als Referenz ist, falsch ist? – Kos
@Kos: Ich spreche über ein Klassenfeld als Referenz definieren. – Falmarri