クラス内の1つのプライベートメソッドへの未定義のリファレンスを取得しています。ここにコードの短い断片があります(しかし、現在のところ、すべてが1つのソースファイルにあり、ヘッダーファイルとソースファイルに分かれていません)。同じファイル内で未定義の参照
#include <iostream>
using namespace std;
struct node
{
int key_value;
node *left;
node *right;
};
class btree
{
node *root;
btree();
~btree();
void destroy_tree(node *leaf);
public:
void destroy_tree();
};
btree::btree()
{
root = NULL;
}
btree::~btree()
{
destroy_tree();
}
void btree::destroy_tree()
{
destroy_tree(root);
}
void destroy_tree(node *leaf)
{
if(leaf!=NULL)
{
destroy_tree(leaf->left);
destroy_tree(leaf->right);
delete leaf;
}
}
int main()
{
return 0;
}
コンパイラの出力この行のための `のbtree :: destroy_tree(ノード*)」に、「未定義の参照:
destroy_tree(root);
しかし、すぐに右のそれを下回るその関数の定義ではありません
?