I have class Prince and Frog (both are children of State (which is virtual) and have slightly differently declared methods welcome() and sayGoodbye()
My only question is why isn't State* m_state public? (Is it default? -- and what does THAT mean?) Code is 100% good, but I have never seen declaration like this until the teacher gave us materials about Design Patterns.
Monster.h
class Monster{
State* m_state;
public:
Monster();
void kiss();
void welcome();
void sayGoodbye();
~Monster();
};
Monster.cpp
Monster::Monster(){
m_state = new Frog();
}
void Monster::kiss(){
delete m_state;
m_state = new Prince();
}
void Monster::welcome(){
m_state->welcome();
}
void Monster::sayGoodbye(){
m_state->sayGoodbye();
}
Monster::~Monster(){
delete m_state;
}
Aucun commentaire:
Enregistrer un commentaire