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

时间:2011-11-09 21:09:29

标签: c++ c++builder c++builder-2010

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

但是,如果我在调用函数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语句中的函数定义。任何人都可以告诉我如何重新安排这个,所以它接受正确的默认参数?我可以将函数(int a)移到CallingFunction上方,使其工作到目前为止。

1 个答案:

答案 0 :(得分:4)

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

void Function(int a = 123);

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