分析问题:
这个问题的原因是有头文件,但是找不到实现。
有两个原因:1.只包含了头文件,只有这个函数的声明,没有包含这个函数的实现(实现一般放在cpp文件中的)。所以只能通过编译,连接不成功。
2.另一个原因是函数的声明和实现都放在头文件中了,一般要把声明放头文件中,实现放在cpp文件中。这样每个#include该头文件的文件都会有一份该函数的实现,连接的时候,连接器不知道连接哪一个实现,于是报错。
反正开始看到这些解释我是一脸懵逼的,但自己找到问题后,发现这个解释还是挺专业的。
接下来是我遇到这个错误的原因
class BinaryTreeNode
{
friend class BinaryTree;
private:
char element;//节点的数据域
BinaryTreeNode leftChild;//结点的左孩子节点
BinaryTreeNode rightChild;//结点的右孩子节点
public:
BinaryTreeNode();//默认构造函数
BinaryTreeNode(const char&ele)//给定数据域的值的构造函数
{
element=ele;
leftChild=NULL;
rightChild=NULL;
}
BinaryTreeNode(const char&ele,BinaryTreeNodel,BinaryTreeNoder)//给定数据值和左右孩子结点的构造函数
{
element=ele;
leftChild=l;