3

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?

4

3 に答える 3

5

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.

于 2012-04-14T06:13:28.320 に答える
4

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 */ }
于 2012-04-14T06:13:50.993 に答える
1

int worker::doJob(int type,int time = 0)エラーが発生する場合は、デフォルト引数を一度だけ宣言する必要があります。

于 2012-04-14T06:15:12.953 に答える