【发布时间】:2015-01-13 02:27:08
【问题描述】:
所以我正在尝试学习 C++ 的命令模式,但我不确定如何绑定我的命令。 我当前的代码有我的输入处理程序和命令,但我不知道如何绑定它们。我不断得到 “错误:'Command' 是 'UpCommand' 的不可访问的基础”。
InputHandler.h
#ifndef INPUTHANDLER_H_INCLUDED
#define INPUTHANDLER_H_INCLUDED
#include "Command.h"
class InputHandler
{
public:
void handleInput();
//Bind Buttons Here
private:
Command* buttonW;
Command* buttonA;
Command* buttonS;
Command* buttonD;
};
#endif // INPUTHANDLER_H_INCLUDED
这是我的 Command.h
Command.h
#ifndef COMMAND_H_INCLUDED
#define COMMAND_H_INCLUDED
#include <iostream>
class Command
{
public:
virtual ~Command() {}
virtual void execute() = 0;
};
class UpCommand : Command
{
virtual void execute() {std::cout << "UP";}
};
class DownCommand : Command
{
virtual void execute() {std::cout << "DOWN";}
};
class LeftCommand : Command
{
virtual void execute() {std::cout << "LEFT";}
};
class RightCommand : Command
{
virtual void execute() {std::cout << "RIGHT";}
};
#endif // COMMAND_H_INCLUDED
我不知道如何将 InputHandler 中的指针绑定到子命令以获取方向。谁能给我解释一下它是怎么做的?
【问题讨论】:
标签: c++ pointers design-patterns command