我写过以下课程
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
当然这是默认参数规范的问题。那么原型的问题是什么?
答案 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)
给你一个错误,你应该只声明你的默认参数一次。