在 C++ 中定义默认函数参数构建器类和参数太少错误

发布于 2024-12-14 13:40:06 字数 591 浏览 2 评论 0原文

我有一个类定义了一个带有默认参数的函数。只要函数定义位于调用它的函数之前的头文件中,它就可以正常工作。

但是,如果我在调用函数 C++ Builder (2010) 报告参数太少错误后移动它。

例如,标头可能是:

class TSomething
{
public:
void CallingFunction();
void Function(int a);
}

并且 cpp 文件可能是:

#include "Header.h"

TSomething::CallingFunction()
{
Function(); // "Too few arguments" here...
}

TSomething::Function(int a = 123)
{
//... some code here ...
}

因此,如果调用函数在“函数”之前,则会报告参数太少。我不明白为什么,因为它在 cpp 文件中的 #include 语句中包含函数定义。谁能告诉我如何重新排列它以便它接受正确的默认参数?我可以将 Function(int a) 移至 CallingFunction 上方以使其正常工作。

I have a class that defines a function with default parameters. It works fine as long as function definition is in header file before function that calls it.

However if I move it after the calling function C++ Builder (2010) reports Too few parameters error.

header might be for example:

class TSomething
{
public:
void CallingFunction();
void Function(int a);
}

and cpp file might be:

#include "Header.h"

TSomething::CallingFunction()
{
Function(); // "Too few arguments" here...
}

TSomething::Function(int a = 123)
{
//... some code here ...
}

So if calling function is before "Function" it reports Too few parameters. I do not understand why because it includes function definition in #include statement in cpp file. Can anyone tell me how to rearrange this so it accepts properly default arguments? I can move the Function(int a) above the CallingFunction to make it work so far.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

一梦浮鱼 2024-12-21 13:40:07

您需要将默认参数放在类内部的成员函数声明中:

void Function(int a = 123);

此外,从类外部的定义中删除默认参数。

You need to put the default arguments in member function's declaration inside your class:

void Function(int a = 123);

Also, remove the default arguments from the definition outside of your class.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文