我使用SDL的RenderCopy功能:應用範圍解析操作會導致編譯器嗆
SDL_RenderCopy(Game::mRenderer, Game::mTexture, &mSourceRect, &mDestinationRect);
最後兩個參數是源和目標矩形將影像複製到從,它期待的指針rects,上面的代碼可以像我們期望的那樣工作,並且它們被重新輸入爲「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 *「的參數不兼容(如果有幫助的話)。
我可以不在這兩個參數上使用範圍解析運算符,但我習慣性地使用它,因爲我整天在工作中編寫C#,並且我經常通過它們的命名空間顯式訪問它,所以我很難當我經常這樣做時,不會對範圍進行限定(加上明確地確定這樣的範圍並不是一件壞事,所以我想堅持下去)。
您意外地形成了一個指向成員的指針。 –
遊戲是一個命名空間還是一個類? – immibis
對不起,遊戲是一個類,應該提到這一點。 –