Ahoj,
potřeboval bych zodpovědět několik dotazů:
-- je to programátorsky správně takto vytvořený kód? Nebo je to principiálně dobře, ale používat by se to nemělo?
-- je správně napsaný kopírovací konstruktor a operátor přiřazení?
-- jak by mělo probíhat dealokování objektů, až se bude vracet zpět ze zanoření?
o co sem se snažil.
- active state
- return state - actvice state
- return state - active state
- return state - atd.
namespace ui
{
enum State
{
Menu1 = 0,
Menu2 = 1,
Menu3 = 2
};
}
struct State
{
State()
: activeState(ui::NoState)
, returnState(0)
{}
State(ui::State state)
: activeState(state)
, returnState(0)
{}
State(ui::State state, ui::State returnState)
: activeState(state)
, returnState(new State(returnState))
{}
State(ui::State state, State returnState)
: activeState(state)
, returnState(new State(returnState))
{}
State(const State &state)
: activeState(state.activeState)
, returnState(new State)
{
returnState = state.returnState;
}
State &operator=(const State &other)
{
if (this != &other)
{
delete returnState;
returnState = new State;
returnState = other.returnState;
activeState = other.activeState;
}
return *this;
}
ui::State activeState;
State *returnState;
};