Re: Can I use overloading for optional parameters?
On 31 Mrz., 17:43, DeMarcus <use_my_alias_h...@hotmail.com> wrote:
[..]
From what I gather, you have b and c as optional parameters from the
get-go. So I would go for:
void fnc( int& a, int* b=NULL, int* c=NULL);
That gives you, the implementor, all the information you need, and
only one public interface to maintain. That also gives you, the
user :-), a possibility to call any possible variant (a, ab, ac, abc)
through only one interface point, but with the inconvenience (IMO, a
very small one) of having to type a "&" in front of optional
parameters.
Goran.
Yes, in most cases that's the way to go, but in a few cases with
temporaries, that solution gives compiler warnings. E.g.
fnc( &TmpClass( "Hello" ), NULL, &TmpClass( "World" ) );
"Warning, taking address of temporary"
Which is a compiler error: The compiler must reject the code,
because you need an lvalue to get the address from. In your
example above TmpClass(...) is an rvalue, which thus should
not be allowed as an argument of the built-in & operator.
HTH & Greetings from Bremen,
Daniel Kr?gler
--
[ See http://www.gotw.ca/resources/clcm.htm for info about ]
[ comp.lang.c++.moderated. First time posters: Do this! ]