c++ - 如何让同一个类的对象在同一个函数中做不同的事情?

标签 c++

我正在用 C++ 制作游戏,我想知道如何让一个类的 2 个对象在调用同一个函数时做不同的事情。我的意思是我有 2 个按钮,当我点击一个按钮时,它应该开始游戏,当我点击另一个按钮时它应该结束游戏。这只是一个简单的示例,但基本上我只想调用函数 click(),您单击的按钮将执行与其他按钮不同的代码。

最佳答案

我假设您正在构建自己的游戏引擎,而不是使用实际处理这些事情的库。

您要做的是为每个函数注册一个回调。这就是所有 UI 库/框架所做的。在一个简单的例子中:

class Button{
std::function<void()> callback;

public:

void connect(std::function<void()> func){
   callback=func
}
void click(){
  callback();
}
};

通过为连接提供不同的回调,您可以实现不同的功能。

关于c++ - 如何让同一个类的对象在同一个函数中做不同的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23301761/

相关文章:

c++ - 如何从 Eigen::MatrixBase<Derived> 获取存储选项

c++ - QVideoWidget黑窗

c++ - 如何在给定时钟偏移的情况下正确获取时间

c++ - 此函数或变量可能不安全。要禁用弃用,请使用 _CRT_SECURE_NO_WARNINGS

c++ - 如何返回 cURL 数据

c++ - 异步竞争条件或错误?

C++ 检查字符串是空格还是空

c++ - 为满足方法参数而进行指针转换是一件危险的事情吗?

c++ - 如何从外部将值传递给结构函数?

c++ - 使用 'include wrapper' 是否被认为是不良做法/指示不良设计?