0


0

過剰表示の使用に問題がある

GlutをC ++で使用しようとしていますが、表示機能をRendererクラス内に配置しようとすると問題が発生します。

私が持っているエラーは次のとおりです:エラーC2227: '→ display’の左はクラス/構造体/共用体/ジェネリック型を指している必要があります

これまでのところ、私は次のものを持っています:

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
}

私は何を間違っているのか分かりません:(

すべての助けをありがとう!

1 Answer


1


staticDisplay`が(名前が示すように)静的関数である場合、そこからメンバー変数である gRenderer`にアクセスできません。 そのためにはクラスのインスタンスが必要ですが、静的メソッドには何もありません。