指定默认参数C ++

时间:2012-04-14 06:12:12

标签: c++ arguments default-arguments

我写过以下课程

class worker
{
   int action;
   int doJob(int type,int time = 0);
   public:
   int call();
}

功能doJob就像

int worker::doJob(int type,int time = 0)
{
          ....code here
}

当我编译时,我收到以下错误

 error: the default argument for parameter 1 of 'int worker::doJob(int, int)' has not yet been parsed

当然这是默认参数规范的问题。那么原型的问题是什么?

3 个答案:

答案 0 :(得分:5)

您不需要重新定义默认值

int worker::doJob(int type,int time = 0)

可以

int worker::doJob(int type,int time)

因为您不需要多次定义参数。

答案 1 :(得分:4)

将默认值放在声明中(即示例中的class worker内),但不在定义中,例如代码简单:

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

答案 2 :(得分:1)

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