我正在尝试编写一个创建二叉树数据结构的程序,但出现了这些奇怪的编译器错误:
main.o:main.cpp:(.text+0x15): undefined reference to `BSTree::BSTree()'
main.o:main.cpp:(.text+0x15): relocation truncated to fit: R_X86_64_PC32 against undefined symbol `BSTree::BSTree()'
collect2: error: ld returned 1 exit status
我对这种编译器错误没有任何经验,也无法弄清楚到底是什么错误。据我所知,我已经为其他编译良好的项目编写了类似的代码。
这是我的代码:
main.cpp
#include <iostream>
#include <cstdlib>
#include "BSTree.h"
using namespace std;
int main()
{
BSTree treeValues;
return 0;
}
BSTree.h
#include <cstdlib>
#include "BTNode.h"
using namespace std;
class BSTree
{
public:
BSTree();
void add(int);
private:
BTNode* m_root;
int m_size;
};
BSTree.cpp
BSTree::BSTree()
{
m_root = NULL;
m_size = 0;
}
void BSTree::add(int it)
{
m_root = new BTNode(it);
}
BTNode.h
#include <cstdlib>
using namespace std;
class BTNode
{
public:
BTNode(int);
private:
int m_data;
BTNode* m_left;
BTNode* m_right;
BTNode* m_parent;
};
BTNode.cpp
BTNode::BTNode(int data)
{
m_data = data;
m_left = NULL;
m_right = NULL;
m_parent = NULL;
}
编辑:.cpp文件中的固定错误消息和格式
答案 0 :(得分:2)
using namespace std;
#include "BTNode.h"
中添加BTNode.cpp
#include "BSTree.h"
中添加BSTree.cpp