所以我正在尝试学习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
这是我的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中的指针绑定到指令的子命令。任何人都可以向我解释它是如何完成的吗?
答案 0 :(得分:2)
您需要使用公共继承而不是私有。可以将class
更改为struct
,也可以说class WTFCommand : public Command
。
这就是错误,&#34;基类无法访问,&#34;装置