クラス State と別のフレンド クラス Game があります。私の質問は、State を拡張するクラス MenuState がある場合、MenuState は Game の友達でもあるのでしょうか?
編集:
したがって、次のような状況がある場合:
class Game
{
private:
StateManager* myStateManager = new StateManager();
}
class State
{
public:
static void create(StateManager* Parent, const std::string name) {};
private:
StateManager* parent;
}
#define DECLARE_STATE_CLASS(T) \
static void create(StateManager* Parent, const std::string name) \
{ \
T* myState = new T(); \
myState->parent = Parent; \
Parent->manageState(name, myState); \
} \
class MenuState : State
{
public:
DECLARE_STATE_CLASS(MenuState)
}
int main()
{
Game app;
MenuState::create(This needs to be the stateManager in app, "MenuState");
app.init("MenuState");
}
状態マネージャーを公開せずにこれを機能させるにはどうすればよいですか?