ヘッダー ファイルの 1 つで " void f(int x) "という名前の関数を (c++、VS 2010 で) 宣言し、それをそれぞれの cpp ファイルに実装したとします。そのソース ファイルのみにオーバーロード関数 ( void f(int x, int y) )を追加しようとすると(ヘッダーに宣言がありません)、「function does not take 2 arguments」というエラーが表示されます。
(この関数は呼び出し関数の上に書かれています)。
ヘッダー ファイルには、実装されたコードはありません。
いくつかの C++ ルールに違反しましたか、それとも単に Visual を使用しているためですか? ヘッダー ファイルですべてのオーバーロード関数を宣言する必要がありますか (またはまったく宣言しませんか)。
編集: ソースファイル:
int findNodeRec(int data, NodeTree *root)
{
return 1;
}
int Tree::findNodeRec(int data)
{
return findNodeRec(data, m_root);
}