当默认参数已定义时,调用不带参数的函数

Calling function without parameter, when default parameter is allready defined

本文关键字:参数 调用 函数 默认 定义      更新时间:2023-10-16
我已经很久没有在

C++写了,我在网上找不到解决问题的方法,因此这个问题:

我有一个类,我想定义一个带有默认参数的函数:Run(par="default")

class.h 包含:

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

类.cpp包含:

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

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

Test test;
test.Run()

7:错误:未定义对"Test::Run()"的引用

我宁愿不使用函数重载。

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

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

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

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

应该没问题