调用没有参数的函数,已经定义了默认参数

时间:2014-02-26 08:38:40

标签: c++ default-value optional-parameters

我用C ++编写已经很长时间了,我无法在网上找到问题的解决方案,因此这个问题:

我有一个类,我想用默认参数定义一个函数:Run(par =“default”)

class.h包含:

class Test { public : void Run(QString par="default");};

class.cpp包含:

void Test::Run(QString par="default") { ... };

我得到的问题是,当我尝试调用此函数时,没有参数(我想使用默认值),编译器会抱怨函数run()的不存在。

Test test;
test.Run()
  

7:错误:未定义引用`Test :: Run()'

我宁愿不使用函数重载。

我试图仅在.cpp中删除默认值,但编译器错误仍然存​​在。

我在这里忘记了什么?我正在使用GCC在QT中编译。

1 个答案:

答案 0 :(得分:3)

如果声明默认参数,则只在类声明中设置它。在定义中,您将其留空。

class Test { public : void Run(QString par="default");};
void Test::Run(QString par) { ... };

应该没问题