C++中的命令模式
Command Pattern In C++
所以我正在尝试学习C++的命令模式,但我不确定如何绑定我的命令。我当前的代码有我的输入处理程序和命令,但我不知道如何绑定它们。我不断得到"错误:"命令"是"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
这是我的命令。
命令.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
我不知道如何将输入处理程序中的指针绑定到子命令以获取方向。谁能向我解释一下它是如何完成的?
您需要使用公共继承而不是私有继承。 要么将class
更改为到处都是struct
,要么说class WTFCommand : public Command
.
这就是错误"基类不可访问"的含义。
相关文章:
- 从命令行c++发送文本文件名
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 具有奇怪重复模板模式的派生类中的成员变量已损坏
- 命令模式 - 使用"weight"执行任务的命令
- 命令模式:如何进行连续操作?(例如,移动对象)
- 如何创建一个可以在GUI对话模式下或通过命令行启动的C MFC程序
- 将命令模式,工厂模式和模板混合在一起..
- qmake-run命令仅在调试模式下运行
- 撤消/重做的命令模式:何时不合并撤消命令
- C++:模式:哪种模式适合特定的代码执行,具体取决于命令行参数
- 在调试模式下运行时,VS2012中的命令参数错误
- 将参数传递给命令模式
- 命令模式队列按时间排序
- 如果命令不只是打印结果,而是进入某种交互模式,如何处理来自C++的终端命令执行的输出?
- C++中的命令模式
- 可以从命令行运行C++代码,但不能从visual studio中的调试模式运行
- 简单的OpenCV命令可以在调试模式下工作,但不能在发布模式下工作
- 使用命令模式进行内存管理
- 命令模式:在哪里创建命令项
- 命令设计模式的实现存在一些错误