2010-10-15 8 views
0

J'essaie d'utiliser Glut en C++, mais j'ai des problèmes lorsque j'essaie de mettre ma fonction d'affichage dans la classe Renderer.Avoir des problèmes avec l'utilisation de l'affichage glut

L'erreur que j'ai est: erreur C2227: gauche de '-> affichage' doit pointer vers la classe/struct/union/type générique

Jusqu'à présent, je donne les résultats suivants:

class Renderer 
{ 
public: 
    Renderer *gRenderer; 
    ... 
} 

int Renderer::start(Renderer r) 
{ 
... 
setRenderer(r); 
glutDisplayFunc(&Renderer::staticDisplay); 
... 
} 

void Renderer::setRenderer(Renderer r){ 
*gRenderer = r; 
} 

void Renderer::staticDisplay(){ 
gRenderer->display(); 
} 

void Renderer::display() 
{ 
... show stuff 
} 

Je ne sais pas ce que je fais mal :(

Merci pour toute l'aide!

Répondre

1

Si staticDisplay est une fonction statique (comme son nom l'indique), vous ca pas accéder à gRenderer, qui est une variable membre, à partir de lui. Vous avez besoin d'une instance de la classe pour le faire, tandis que les méthodes statiques n'en ont pas.