我根本不是 C++ 大师,我试图在各种小试验中复制这个错误。事实是,当我用我想做的事情做一个有 2 或 3 个类的小程序时,没有错误。但是在主要应用程序中,即使我尝试了很多(甚至是胡说八道)解决方案,我也想写错误仍然存在。
问题是我有一个实例化一些资源(作为指针)的主类和一个策略模式,该模式用于实例化不同的具体行为,这些行为在构造函数中选择资源。
在主应用程序中,init():
device = new Kinect();
controls = new Gui();
UserPositionBehaviour = new UserPositionBehaviour(device, controls);
并且,行为构造函数:
UserPositionBehaviour(Kinect * device, Gui * controls);
这是错误:
src/App.cpp:30: error: no matching function for call to ‘UserPositionBehaviour::UserPositionBehaviour(Kinect*&, ofTrueTypeFont*&, ofxGui*&)’
src/UserPositionBehaviour.h:15: note: candidates are: UserPositionBehaviour::UserPositionBehaviour(Kinect*, ofxGui*, ofTrueTypeFont*)
src/UserPositionBehaviour.h:13: note: UserPositionBehaviour::UserPositionBehaviour(const UserPositionBehaviour&)
嗯??嘿,这是怎么回事?我传递的是指针,而不是*&(我不知道如何阅读)
一些忠告?
我尝试使用仅在 couts 上构建的简单案例来复制错误,但没有问题,所以也许在其他地方隐藏了一些错误..