简体   繁体   中英

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?

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.

Put the default in the declaration (ie inside class worker in your example), but not in the definition, eg code simply:

 int worker::doJob(int type,int time)
 {  /* your code here */ }

int worker::doJob(int type,int time = 0)给您一个错误,您只应声明一次默认参数。

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM