On Mar 30, 5:49 pm, DeMarcus <use_my_alias_h...@hotmail.com> wrote:
Hi,
I need to provide a set of parameters to a function where one or more
can be optional. Standard C++ can only provide default values for the
last parameters and a default value representing N/A for references is
not quite pleasant.
I came up with an idea of overloading the optional parameters. Please
give me your feedback.
class SomeClass
{
public:
void fnc( int& a );
void fnc( int& a, int& b );
void fnc( int& a, int& b, int& c );
// Now insert a pointer if we want to disable (b).
void fnc( int& a, int* b, int& c );
};
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.
temporaries, that solution gives compiler warnings. E.g.
[ comp.lang.c++.moderated. First time posters: Do this! ]