C++ 在C+中定义默认函数参数+;生成器类和太少的参数错误
我有一个用默认参数定义函数的类。只要函数定义位于调用它的函数之前的头文件中,它就可以正常工作C++ 在C+中定义默认函数参数+;生成器类和太少的参数错误,c++,c++builder,c++builder-2010,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()
但是,如果调用函数之后移动它,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)移到调用函数的上方,使其工作到目前为止。您需要在类中的成员函数声明中放置默认参数:
void Function(int a = 123);
另外,从类外的定义中删除默认参数。您需要将默认参数放入类内成员函数的声明中:
void Function(int a = 123);
另外,从类之外的定义中删除默认参数。谢谢。。。现在工作。当我输入它的那一刻,我也明白了为什么它有效,而我的版本没有。。。哑…哑…哑!在声明和定义中,参数总是在调用函数之后。谢谢。。。现在工作。当我输入它的那一刻,我也明白了为什么它有效,而我的版本没有。。。哑…哑…哑!在声明和定义中,参数始终位于调用函数之后。