Jump to content
The Dark Mod Forums
Sign in to follow this  
HMart

question for c++ gurus (or not)

Recommended Posts

I have two overloaded functions in my class, for example:

virtual void Foo(const idvec3 &parm1, const idAxis &parm2){}

virtual void Foo(const idvec3 &parm1, const idAxis &parm2, const int parm3 = 0 ){}

But visual studio gives me a error of :

Ambiguous call to overloaded function

 

How would you guys solve this?

What i did was call the second function another name for now, but would like to know if this has a solution.

Thanks in advance.

 

edit: changed some int's to the real types i'm using because that could be important for the problem solution.

Edited by HMart

Share this post


Link to post
Share on other sites

Not a C++ coder, but might help to remove the default value from the third argument. I too would expect the two signatures to be ambiguous for calls with only two arguments.

Share this post


Link to post
Share on other sites

Abusimplea is right.
Basicly the compiler doesn't get what function it should use if you were calling method Foo with just two arguments.
It would not know whether to call the first variant or the second one (with default argument). That setup just doesn't make any sense at all.

 

Either go with

virtual void  Foo(const idvec3 &parm1, const idAxis &parm2){}
virtual void  Foo(const idvec3 &parm1, const idAxis &parm2, const int parm3){}

or just

virtual void  Foo(const idvec3 &parm1, const idAxis &parm2, const int parm3 = 0 ){}
Edited by gnartsch

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...