// receiver
class Tape_Recorder
{
public:
void Play()
{
printf("since my baby left me: \n");
}
void Stop()
{
printf("ok. taking a break.\n");
}
void Rewind()
{
printf("zzzikw.\n");
}
void Record(const std::string& sound)
{
printf("Record: {%s}\n", sound.c_str());
}
};
// command interface
class Command_Base
{
public:
virtual ~Command_Base() {}
virtual bool Enabled() const = 0;
virtual void Execute() = 0;
};
// concrete command
class PlayCommand : public Command_Base
{
public:
PlayCommand(Tape_Recorder* pRecorder)
class Tape_Recorder
{
public:
void Play()
{
printf("since my baby left me: \n");
}
void Stop()
{
printf("ok. taking a break.\n");
}
void Rewind()
{
printf("zzzikw.\n");
}
void Record(const std::string& sound)
{
printf("Record: {%s}\n", sound.c_str());
}
};
// command interface
class Command_Base
{
public:
virtual ~Command_Base() {}
virtual bool Enabled() const = 0;
virtual void Execute() = 0;
};
// concrete command
class PlayCommand : public Command_Base
{
public:
PlayCommand(Tape_Recorder* pRecorder)