Я не знаю, правильно ли выражен мой заголовок, если нет, поправьте меня, чтобы я мог его обновить. Однако это мой вопрос, выраженный примерами кода: в чем разница, когда дело доходит до переменной keyStates, между примерами A и B?
Пример A (где переменная «keyStates» определяется как stati c переменная в классе в файле .h):
// Input.h
class Input
{
public:
static bool GetKeyDown(KeyCode keycode);
private:
static std::unordered_map<KeyCode, KeyState> keyStates;
}
// Input.cpp
#include "Input.h"
bool Input::GetKeyPressed(KeyCode keyCode)
{
for (auto Code : AllKeyCodes)
{
if (Code == keyCode)
{
return KeyState::PRESSED == keyStates.find(Code)->second;
}
}
return false;
}
Пример B (где переменная keyStates определена без stati c в файле. cpp):
// Input.h
class Input
{
public:
static bool GetKeyDown(KeyCode keycode);
}
// Input.cpp
#include "Input.h"
std::unordered_map<KeyCode, KeyState> keyStates;
bool Input::GetKeyPressed(KeyCode keyCode)
{
for (auto Code : AllKeyCodes)
{
if (Code == keyCode)
{
return KeyState::PRESSED == keys.find(Code)->second;
}
}
return false;
}