C++链接问题

huangzhtao 2008-04-14 04:29:02
想写一个建立二叉树的类,只写了构造函数,编译就出现了以下问题:
1>BiTree.obj : error LNK2019: unresolved external symbol "public: struct tree * __thiscall biTree::create_btree(struct tree *,struct tree *,char)" (?create_btree@biTree@@QAEPAUtree@@PAU2@0D@Z) referenced in function "public: __thiscall biTree::biTree(char *,int)" (??0biTree@@QAE@PADH@Z)

全部编译结果如下:
1>------ Build started: Project: BiTree, Configuration: Debug Win32 ------
1>Compiling...
1>BiTree.cpp
1>g:\c++class\bitree\bitree.cpp(111) : warning C4715: 'create_btree' : not all control paths return a value
1>Linking...
1>BiTree.obj : error LNK2019: unresolved external symbol "public: struct tree * __thiscall biTree::create_btree(struct tree *,struct tree *,char)" (?create_btree@biTree@@QAEPAUtree@@PAU2@0D@Z) referenced in function "public: __thiscall biTree::biTree(char *,int)" (??0biTree@@QAE@PADH@Z)
1>G:\C++Class\BiTree\Debug\BiTree.exe : fatal error LNK1120: 1 unresolved externals
1>Build log was saved at "file://g:\C++Class\BiTree\BiTree\Debug\BuildLog.htm"
1>BiTree - 2 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
代码如下:

#include<iostream>
#include <string>
#include<stdio.h>

using namespace std;

struct tree {

char info;

struct tree *left,*right;

};


class biTree
{
public:
biTree(char *s, int n );
~biTree();

struct tree *create_btree(struct tree *root,struct tree *r,char info);

void InOrder(struct tree *T); //中序递归遍历二叉树


private:
struct tree *root;
};

//******************************************

// the main function

//******************************************

int main()

{

return 0;

}


biTree::biTree(char *a, int n )
{
root = '\0';
char *s;
s = a;

do {
s = a;
n--;

if (!root){

root=biTree::create_btree(root,root,*s);
}

else{

//create_btree(root,root,*s);
}
a++;
} while ( n ) ;
}

struct tree biTree::*create_btree(struct tree *root,struct tree *r,char info)

{
if (r ==0 )
{
r=new (struct tree);

if ( r == 0)

{
printf("Out of memory\n");
return 0 ;
}

r->left= 0;
r->right=0;
r->info=info;

if (root)
{
if(info<root->info) root -> left=r;

else root->right=r;

}

else
{
r->right=0;
r->left = 0;
}

}

if (info < r->info)

create_btree(r,r->left,info);

if(info>=r->info)

create_btree(r,r->right,info);

}

网上找了,没找到解决办法.各位大哥帮忙看下,谢谢了!
...全文
39 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
p0303230 2008-04-14
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 tgh621 的回复:]
struct tree biTree::*create_btree(struct tree *root,struct tree *r,char info)
改为
struct tree* biTree::create_btree(struct tree *root,struct tree *r,char info)
[/Quote]
tgh621 2008-04-14
  • 打赏
  • 举报
回复
struct tree biTree::*create_btree(struct tree *root,struct tree *r,char info)
改为
struct tree* biTree::create_btree(struct tree *root,struct tree *r,char info)
huangzhtao 2008-04-14
  • 打赏
  • 举报
回复
问题解决了,太感谢了,接分吧!
babyvox1999 2008-04-14
  • 打赏
  • 举报
回复
struct tree biTree::*create_btree(struct tree *root,struct tree *r,char info)
--------------------------------
struct tree* biTree::create_btree(struct tree *root,struct tree *r,char info)
baihacker 2008-04-14
  • 打赏
  • 举报
回复


struct tree* biTree::create_btree(struct tree *root,struct tree *r,char info)
//*号写错地方了

64,640

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧