Я использую функцию RenderCopy SDL в:Применяя оператор разрешения области видимости вызывает компилятор задыхаться
SDL_RenderCopy(Game::mRenderer, Game::mTexture, &mSourceRect, &mDestinationRect);
Последние два аргумента Прямоугольник источника и назначения, чтобы скопировать изображение и с, он ожидает указатель исправления, приведенный выше код работает так, как и следовало ожидать, и они снова набираются как «SDL_Rect Game :: mSourceRect», как и ожидалось для переменной-члена.
я получаю вопрос всякий раз, когда я пытаюсь применить оператор разрешения области видимости прямоугольников, когда они передаются в эту функцию и эта функция только:
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
К сожалению, игра - это класс, должен был упомянуть об этом. –