【发布时间】:2018-10-08 10:27:13
【问题描述】:
我正在尝试打印出我使用中序遍历构建的二叉树,但在定义如何将值传递给递归函数时遇到了麻烦。这是我得到的错误:
1>methods.obj:错误 LNK2001:无法解析的外部符号“公共: void __thiscall morsecode::in_order(struct letter *)" (?in_order@morsecode@@QAEXPAUletter@@@Z)
这是我的头文件中的树:
struct letter
{
string let;
string morse;
letter *left;
letter *right;
};
源文件中的方法:
void in_order(struct letter *P)
{
if(P==NULL) return;
in_order(P->left);
cout<<"letter: "<<P->let<<endl;
in_order(P->right);
}
我在这里遗漏了什么重要的东西吗?
【问题讨论】:
-
你有这个文件顶部的函数原型吗?结构的定义在函数的定义之下吗?如果是这样,请切换顺序,或在文件顶部添加原型。您的编译会对其进行一次传递,因此如果结构的定义不高于函数的定义,那么解析器将不知道“结构字母”是什么。
-
定义在 .h 文件中,我使用的方法在 .cpp 文件中。除非我实际调用该函数,否则我在运行它时不会收到任何错误。我应该向函数传递一个指针,对吗?我已经声明 typedef letter* ptr;在标题中,我将它传递给 ptr P.
-
那么下面的响应可能是您的解决方案。看看 perreal 怎么说。
标签: c++ binary-tree binary-search-tree