Доступ к методу класса в классе

Я пытаюсь перенести некоторый код из более старой версии программы в более новую версию, и некоторые вещи изменились. Существует класс с именем Game, и он ИСПОЛЬЗУЕТСЯ, чтобы содержать метод с именем ButtonNameToIndex, однако в более новой версии теперь есть класс внутри класса Game с именем InputScheme, и ButtonNameToIndex объявлен в InputScheme.

Game.h:

class Game
{
public:
const char *     m_szName;
const Style * const* m_apStyles;
bool         m_bCountNotesSeparately;
bool         m_bAllowHopos;
InputScheme      m_InputScheme;
}

InputScheme.h:

class InputScheme
{
public:
const char  *m_szName;
int     m_iButtonsPerController;
struct GameButtonInfo
{
const char  *m_szName;
GameButton  m_SecondaryMenuButton;
};

GameButtonInfo m_GameButtonInfo[NUM_GameButton];
const InputMapping *m_Maps;

GameButton ButtonNameToIndex( const RString &sButtonName ) const;
}

Код, который я пытаюсь перенести, выглядит так:

FOREACH_ENUM( GameButton, pGame->ButtonNameToIndex("Operator"), gb )
ini.SetValue( sPlayerKey, GameButtonToString(pGame, gb),
FromMapping(mapping.m_iGameLights[gc][gb]) );

Я не могу понять, как получить доступ к ButtonNameToIndex сейчас, когда он перешел в новый класс.

0

Решение

Так как Game класс имеет открытую переменную-член типа InputScheme Вы можете заменить любые звонки на

pGame->ButtonNameToIndex("Operator")

с

pGame->m_InputScheme.ButtonNameToIndex("Operator")

мы используем -> чтобы получить доступ к члену Game так как мы обращаемся через указатель (я предполагаю), так как m_InputScheme это значение (не указатель) мы получаем доступ к его функции-члену, используя . оператор

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]