65,208
社区成员
发帖
与我相关
我的任务
分享
#include <iostream>
using namespace std;
class Work;
class ForenoonState;
class NoonState;
class State
{
public:
virtual void WriteProgram(Work* w)=0;
};
class Work
{
private:
State* current;
public:
double hour;
public:
Work();
void SetState(State* temp)
{
current =temp;
}
void Writeprogram()
{
current->WriteProgram(this);
}
};
class NoonState :public State
{
public:
virtual void WriteProgram(Work* w)
{
if((w->hour)<13)
cout<<"还不错啦"<<endl;
else
cout<<"不行了,还是睡觉吧"<<endl;
}
};
class ForenoonState : public State
{
public:
virtual void WriteProgram(Work* w)
{
if((w->hour)<12)
cout<<"现在的精神无敌好"<<endl;
else
w->SetState(new NoonState());
}
};
Work::Work()
{
current = new ForenoonState();
}
#include "Model.h"
int main()
{
Work* mywork=new Work();
mywork->hour=9;
mywork->Writeprogram();
mywork->hour = 14;
mywork->Writeprogram();
return 0;
}
int main()
{
Work* mywork=new Work();
mywork->hour=9;
mywork->Writeprogram();
mywork->hour = 14;
mywork->Writeprogram();
mywork->Writeprogram();
return 0;
}