gpt4 book ai didi

C++类和freeglut(参数类型不匹配)

转载 作者:太空宇宙 更新时间:2023-11-04 13:55:16 27 4
gpt4 key购买 nike

<分区>

我想创建一个类来保存我的变量,许多函数将使用这些变量,例如鼠标位置和其他东西。这是我做的:

测试.h:

class test{
public:
test();
virtual ~test();

void update(int n);

//Desenhar
void draw(void);

private:
int mx, my; //Mouse variables
};

测试.cpp:

test::test(){
}

test::test(){
}

void test::update(int n){
glutTimerFunc(20, this->update, 0);
}

void test::draw(void){
...
circle(mx, my);
...
}

我遇到的问题是我无法将更新方法与 glutTimerFunc() 一起使用(例如 glutTimerFunc(20, this->update, 0);)因为它不是 static 函数。即使我正在使用 object.update(在 main 函数上,我为名为 object 的类创建了一个实例),它也说参数类型不匹配( 错误:“void (test::)(int)”类型的参数与“void (*)(int)”不匹配)

如果我将其更改为静态(这里有很多问题都说我应该这样做),我就不能在 draw 方法上使用 mx 或 my,因为它没有实例。

有什么解决办法吗?我这样做是因为我需要在很多方法中使用一些变量,最好的方法是在主函数和此类中的所有方法上创建此类的实例。我是否在做不该做的事情?

抱歉,如果解决方案很简单,我是 C++ 的新手,从未以这种方式使用过类,这是第一次。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com