1

デフォルトのパラメーターを持つ関数を定義するクラスがあります。関数定義がそれを呼び出す関数の前にヘッダーファイルにある限り、正常に機能します。

ただし、呼び出し関数 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 の上に移動して、これまでのところ機能させることができます。

4

1 に答える 1

5

クラス内のメンバー関数の宣言にデフォルトの引数を入れる必要があります。

void Function(int a = 123);

また、クラス外の定義からデフォルトの引数を削除します。

于 2011-11-09T21:14:00.253 に答える