【问题标题】:C++ Missing Argument List - Class MethodC++ 缺少参数列表 - 类方法
【发布时间】:2014-02-26 04:57:28
【问题描述】:

我想使用类方法作为 GLUT 显示函数。我的做法:

glutDisplayFunc(this->gameTick);

但我得到一个错误:缺少参数列表。我的一些代码:

class Game
{
public:
    void gameTick();
}

void Game::gameTick()
{
}

有人知道我该如何解决这个问题吗?

【问题讨论】:

  • 您在函数调用 gameTick 之后缺少 ()。它应该看起来像glutDisplayFunc(gameTick())。但是,如果不查看您对glutDisplayFunc() 的调用(上下文),就不可能知道这是否对您直接有效。
  • glutDisplayFunc() 来自 GLUT 框架,这不是我的功能
  • 我知道这一点。但是,对于手头的问题,您将其称为何处很重要。如果您从 Game 类的另一个成员函数中调用它,那么只需调用 glutDisplayFunc(gameTick()); 就是您问题的正确答案。如果没有,那就更复杂了。
  • 我在类的构造函数中使用函数。我试着这样做: glutDisplayFunc(gameTick());但后来我得到这个错误: void is incompatible width void (*)()

标签: c++ class methods arguments glut


【解决方案1】:

您不能以这种方式使用类方法。尝试将其设为静态或使用非类函数。

然后将编写静态方法语法

glutDisplayFunc(Game::gameTick);

this->gameTick 尝试调用gameTick(),这就是为什么它缺少括号中的参数列表。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多