Reputation: 6291
I have written the following class
class worker
{
int action;
int doJob(int type,int time = 0);
public:
int call();
}
And the function doJob is like
int worker::doJob(int type,int time = 0)
{
....code here
}
When i compile ,i am getting the following error
error: the default argument for parameter 1 of 'int worker::doJob(int, int)' has not yet been parsed
Surely it is a problem with default parameter specification..So what is the problem with th e prototype?
Upvotes: 4
Views: 1527
Reputation: 8380
int worker::doJob(int type,int time = 0)
is giving you an error, you should only declare your default argument once.
Upvotes: 1
Reputation: 1
Put the default in the declaration (ie inside class worker
in your example), but not in the definition, e.g. code simply:
int worker::doJob(int type,int time)
{ /* your code here */ }
Upvotes: 4
Reputation: 3276
You don't need to redefine the default value
int worker::doJob(int type,int time = 0)
can just be
int worker::doJob(int type,int time)
As you do not need to define the argument more than once.
Upvotes: 5