从其他类的对象调用方法C++

C++ call method from Object of other class

本文关键字:调用 方法 C++ 对象 其他      更新时间:2023-10-16

我的实际大学项目有点问题,在我们做 C 之前C++开始。问题是我想调用一个带有指针的对象的方法。该类称为 Mainwindow,它具有类 Camera 的对象指针Camera* cam;类 Camera 具有向右、向左、向上等功能。现在我在主窗口中有一个鼠标回调,它应该调用相机转动。我尝试这样做cam->turnRight();cam.turnRight();这两种方法都不起作用。主窗口中调用摄像机转动的方法都是静态的,因为回调必须是静态的。

主窗口不是单例。

您知道如何完成通话吗?

提前感谢,

克里斯卡48

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

1)将指向要转到静态函数的Camera对象的指针传递给静态函数(这可能是最好的解决方案)

2)使主窗口中的相机对象指针也静态,并使用主窗口::相机调用它。这确实意味着所有 Mainwindow 对象只能有一个相机对象,并且您实际上是在创建一个全局变量。

希望这有帮助!

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

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