2016-10-13 9 views
0

をチョークするようにコンパイラになり、私はSDLのRenderCopy機能を使用しています:適用スコープ解決演算子が

SDL_RenderCopy(Game::mRenderer, Game::mTexture, &mSourceRect, &mDestinationRect); 

最後の2つの引数が、それはへのポインタを期待している、にしてから画像をコピーする送信元と宛先の矩形です直前のコードは期待通りに機能し、メンバー変数に期待されるように「SDL_Rect Game :: mSourceRect」とタイプされています。

私は彼らがこの関数に渡されたときにrectsにスコープ解決演算子を適用しようと、この機能をいつでも、私は問題を得る:

SDL_RenderCopy(Game::mRenderer, Game::mTexture, &Game::mSourceRect, &Game::mDestinationRect); 

エラーは次のとおりです。

argument of type "SDL_Rect Game::*" is incompatible with parameter of type 
"const SDL_Rect *" SDL2Refresher 

& Game :: mSourceRectという型をチェックすると、スコープ解決演算子を使用しない場合とまったく同じになります。私の質問はなぜ地球上でコードがコンパイルされないのでしょうか?

エラーリストには、「SDL_Rect Game :: *はconst SDL_Rect * ""という型のパラメータと互換性がありません。

私はこの2つの引数でスコープ解決演算子を使用することはできませんが、仕事でC#を一日書きますので常識的に使うだけで、常に名前空間で明示的にアクセスしています。私はそれを頻繁に行うときにスコープのものを使用しません(明示的にこれをスコープすることは、まずは悪いことではありません)。

+0

メンバーへのポインタが誤って作成されています。 –

+0

ゲームは名前空間かクラスですか? – immibis

+0

申し訳ありませんが、ゲームはクラスですが、それを述べたはずです。 –

答えて

1

&(Game :: mSourceRect)が引数として機能するかどうか確認できますか?コンパイラのエラーは、クラスとスコープを型の一部として扱っているようです。たぶん型を最初に評価する場合(角かっこで)、角の外側に(&)のアドレスを適用してください。

+0

それを修正した、今私はそれを試していないためちょっとばかばかしい感じ:P私は10分でこの答えを受け入れるよ、ありがとう! :) –

関連する問題