来自其他类的Object的C ++调用方法

时间:2014-11-22 19:21:35

标签: c++ pointers object

我的实际大学项目有一点问题,在我们做C之前就已经处于C ++的开头。问题是我想调用一个对象的方法,我用指针调用它。该类称为Mainwindow,它有一个类Camera Camera* cam;的对象指针,类Camera具有向右,向左,向上等功能。现在我在Mainwindow中为鼠标设置了一个Callback,它应该调用相机来转动。我试图这样做cam->turnRight();cam.turnRight();这两个都行不通。主窗口中调用Camera的方法是静态的,因为Callbacks必须是静态的。

主窗口不是单身人士。

您有什么想法如何完成通话?

提前致谢,

Criska48

2 个答案:

答案 0 :(得分:0)

您尝试从静态成员函数访问非静态数据成员cam。这不起作用,也无法工作,因为在静态成员函数编译器中无法知道它应该使用哪个对象的cam

由于回调问题需要使用静态函数,因此需要重新设计代码。怎么样?没有你问题中的实际代码很难说。

答案 1 :(得分:0)

在C ++中,静态成员函数无法访问任何成员变量,因为没有与该静态成员函数关联的对象。您可以通过多种方式传递Camera的实例:

1)传入指向要转向静态功能的Camera对象的指针(这可能是最好的解决方案)

2)使Mainwindow中的Camera对象指针也静止,并使用Mainwindow :: camera调用它。这意味着您只能为所有Mainwindow对象设置一个摄像头对象,而实际上您正在创建一个全局变量。

希望这有帮助!

相关问题