Jinu Joseph Daniel
Jinu Joseph Daniel

Reputation: 6291

Specifying default parameters C++

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

Answers (3)

Shep
Shep

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

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

josephthomas
josephthomas

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

Related Questions