我的实际大学项目有一点问题,在我们做C之前就已经处于C ++的开头。问题是我想调用一个对象的方法,我用指针调用它。该类称为Mainwindow,它有一个类Camera Camera* cam;
的对象指针,类Camera具有向右,向左,向上等功能。现在我在Mainwindow中为鼠标设置了一个Callback,它应该调用相机来转动。我试图这样做cam->turnRight();
或cam.turnRight();
这两个都行不通。主窗口中调用Camera的方法是静态的,因为Callbacks必须是静态的。
主窗口不是单身人士。
您有什么想法如何完成通话?
提前致谢,
Criska48
答案 0 :(得分:0)
您尝试从静态成员函数访问非静态数据成员cam
。这不起作用,也无法工作,因为在静态成员函数编译器中无法知道它应该使用哪个对象的cam
。
由于回调问题需要使用静态函数,因此需要重新设计代码。怎么样?没有你问题中的实际代码很难说。
答案 1 :(得分:0)
在C ++中,静态成员函数无法访问任何成员变量,因为没有与该静态成员函数关联的对象。您可以通过多种方式传递Camera的实例:
1)传入指向要转向静态功能的Camera对象的指针(这可能是最好的解决方案)
2)使Mainwindow中的Camera对象指针也静止,并使用Mainwindow :: camera调用它。这意味着您只能为所有Mainwindow对象设置一个摄像头对象,而实际上您正在创建一个全局变量。
希望这有帮助!