i’m not a c++ guru at all, and i’ve tried to replicate this error in variuos little trials. the fact is that when i do a little program with 2 o 3 classes with what i wanto to do, there is no error. but in the main applicaiton i’m tring to write the error persist even if i’ve tried a lot of (even nonsense) solutions.
the problem is that i have a main class that instantiate some resources (as pointers) and a strategy pattern that istantiate different concrete behaviours that take in constructors thoose resources.
in main app, init():
device = new Kinect();
controls = new Gui();
UserPositionBehaviour = new UserPositionBehaviour(device, controls);
and, behaviour constructor:
UserPositionBehaviour(Kinect * device, Gui * controls);
this is the error:
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&)
eh?? hei, what is happening? i’m passing pointers, not *& (that i don’t event know how to read)
some advice?
i’ve tried to replicate the error with a simple case builds only on couts but there are no problems so mayebe there is some error hidden somewhereelse..
According to the error message, you’re calling the constructor with three arguments, not two, and you’ve got the last two the wrong way round.
If that’s the real error message, then your code probably looks like:
and should be:
If your code really does look like what you’ve posted, and gives that error message, then something really weird is happening; in that case, please post a complete compilable example so we can investigate further.
You can ignore the extra
&s in gcc’s error message: it’s a slightly odd way of saying that it’s looking for functions that take their arguments by either value or reference.