鱼C论坛

 找回密码
 立即注册
查看: 2205|回复: 17

c++小白求助

[复制链接]
发表于 2014-10-15 22:50:45 | 显示全部楼层 |阅读模式
20鱼币
本帖最后由 风之残月 于 2014-11-9 22:38 编辑

  1. template<class datatype>
  2. class BTree_Link
  3. {
  4. public:
  5.     BTree_Link();//构造函数
  6.     ~BTree_Link(void);//析构函数
  7.     datatype Pre_Tree(TreeNode<datatype> * root);//前序遍历
复制代码
出现如此错误
D:\数据结构C++版\树的实现\tree.h|17|error: declaration of '~Tree_Link' as member of 'BTree_Link<datatype>'|

最佳答案

查看完整内容

D:\数据结构C++版\树的实现\tree.h|17|error: declaration of '~Tree_Link' as member of 'BTree_Link'| 意思是说在tree.h文件的第17行,将~Tree_Link作为BTree_Link的成员变量,因为~Tree_Link不符合变量命名原则,原因大概是误将析构函数~BTree_Link写为~Tree_Link。 具体原因,由于看不见第17行上下的代码,所以无法解释。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-15 22:50:46 | 显示全部楼层
D:\数据结构C++版\树的实现\tree.h|17|error: declaration of '~Tree_Link' as member of 'BTree_Link<datatype>'|

意思是说在tree.h文件的第17行,将~Tree_Link作为BTree_Link<datatype>的成员变量,因为~Tree_Link不符合变量命名原则,原因大概是误将析构函数~BTree_Link写为~Tree_Link。
具体原因,由于看不见第17行上下的代码,所以无法解释。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-16 01:03:00 | 显示全部楼层
TreeNode你定义了吗?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 10:29:21 | 显示全部楼层
流行语 发表于 2014-10-16 01:03
TreeNode你定义了吗?

我在前面定义了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 10:30:13 | 显示全部楼层
仰望天上的光 发表于 2014-10-16 08:35
D:\数据结构C++版\树的实现\tree.h|17|error: declaration of '~Tree_Link' as member of 'BTree_Link'|
  ...

这里的第七行就是所说的十七行上下的代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-16 10:36:39 | 显示全部楼层
我给你问问老师的。等我啊
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 10:38:48 | 显示全部楼层
小彩鱼 发表于 2014-10-16 10:36
我给你问问老师的。等我啊

皮皮,说话要算数
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-16 10:55:40 | 显示全部楼层
大黑鱼 发表于 2014-10-16 10:38
皮皮,说话要算数

好的   没问题,请我吃顿饭的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-16 11:59:17 | 显示全部楼层
大黑鱼 发表于 2014-10-16 10:30
这里的第七行就是所说的十七行上下的代码

这段代码没有任何错误,我做了如下的小修改,可以通过编译
  1. template<class T> class TreeNode;
  2. template<class datatype>
  3. class BTree_Link
  4. {
  5. public:
  6.     BTree_Link();//&sup1;&sup1;&Ocirc;ì&ordm;&macr;&Ecirc;&yacute;
  7.     ~BTree_Link(void);//&Icirc;&ouml;&sup1;&sup1;&ordm;&macr;&Ecirc;&yacute;
  8.     datatype Pre_Tree(TreeNode<datatype> * root);//&Ccedil;°&ETH;ò±é&Agrave;ú
  9. };
复制代码

应该把整个.h文件贴上来看看。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-16 12:09:02 | 显示全部楼层
支持9楼的,把代码都贴出来看看。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 12:20:58 | 显示全部楼层
仰望天上的光 发表于 2014-10-16 11:59
这段代码没有任何错误,我做了如下的小修改,可以通过编译

应该把整个.h文件贴上来看看。

恩恩。好的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 12:22:21 | 显示全部楼层
仰望天上的光 发表于 2014-10-16 11:59
这段代码没有任何错误,我做了如下的小修改,可以通过编译

应该把整个.h文件贴上来看看。
  1. #include <iostream>
  2. using  namespace std;

  3. template <class datatype>
  4. struct  TreeNode
  5. {
  6.     datatype data;
  7.     TreeNode<datatype> * left,* right;
  8. };

  9. template<class datatype>
  10. class BTree_Link
  11. {
  12. public:
  13.     BTree_Link();//构造函数
  14.     ~BTree_Link();//析构函数
  15.     datatype Pre_Tree(TreeNode<datatype> * root);//前序遍历
  16.     datatype Mid_Tree(TreeNode<datatype> * root);//中序遍历
  17.     datatype Las_Tree(TreeNode<datatype> * root);//后续遍历
  18.     datatype Lev_Tree(TreeNode<datatype> * root);//层序遍历
  19. private:
  20.     TreeNode<datatype> *root;
  21.     TreeNode<datatype> * Creat();   //创建节点
  22.     void Relse(TreeNode<datatype> *root);   //删除节点
  23. };

  24. template<class datatype>
  25. BTree_Link<datatype> ::BTree_Link()     //构造函数
  26. {
  27.     root = Creat();
  28. }

  29. template<class datatype>
  30. BTree_Link<datatype>::~BTree_Link()     //析构函数
  31. {
  32.     Relse(root);
  33. }

  34. template<class datatype>
  35. datatype BTree_Link<datatype> :: Pre_Tree(TreeNode<datatype> * root)    //递归算法 前序遍历
  36. {
  37.     if (root == NULL)
  38.         return 0;
  39.     else
  40.     {
  41.         cout << root.data<<endl;
  42.         Pre_Tree(root.left);
  43.         Pre_Tree(root.right);
  44.     }
  45. }

  46. template<class datatype>
  47. datatype BTree_Link<datatype>::Mid_Tree(TreeNode<datatype> *root)    //中序遍历 递归算法
  48. {
  49.     if (root == NULL)
  50.         return 0;
  51.     else
  52.     {
  53.         Mid_Tree(root.left);
  54.         cout << root.data;
  55.         Mid_Tree(root.right);
  56.     }
  57. }

  58. template <class datatype>
  59. datatype BTree_Link<datatype>::Las_Tree(TreeNode<datatype> *root)  //后续遍历
  60. {
  61.     if (root == NULL)
  62.         return 0;
  63.     else
  64.     {
  65.         Las_Tree(root.left);
  66.         Las_Tree(root.right);
  67.         cout<<root.data;
  68.     }
  69. }

  70. template<class datatype>
  71. void BTree_Link<datatype>::Relse(TreeNode<datatype> * root)    //删除节点
  72. {
  73.     if (root != NULL)
  74.     {
  75.         Relse(root->left);
  76.         Relse(root->right);
  77.         delete root;
  78.     }
  79. }


  80. template<class datatype>
  81. TreeNode<datatype> * BTree_Link<datatype>::Creat()    //创建一颗二叉树
  82. {
  83.     datatype ch;
  84.     TreeNode<datatype> *root;
  85.     cin>>ch;
  86.     if (ch =='#')
  87.         root = NULL;
  88.     else
  89.     {
  90.         root = new TreeNode<datatype>;
  91.         root->data = ch;
  92.         root->left = Creat();
  93.         root->right = Creat();
  94.     }

  95.     return root;
  96. }
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 12:27:27 | 显示全部楼层
流行语 发表于 2014-10-16 12:09
支持9楼的,把代码都贴出来看看。

好的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-16 16:15:47 | 显示全部楼层

你什么编译器啊?我用VC6和VS2010编译都没错啊。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 17:49:35 | 显示全部楼层
仰望天上的光 发表于 2014-10-16 16:15
你什么编译器啊?我用VC6和VS2010编译都没错啊。

我用的 是code::blocks
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-10-16 20:10:30 | 显示全部楼层
code::blocks只是编译环境,编译器是mingw吧?我用mingw在code::blocks下单独编译该文件也没错。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2014-10-16 22:51:03 | 显示全部楼层
仰望天上的光 发表于 2014-10-16 20:10
code::blocks只是编译环境,编译器是mingw吧?我用mingw在code::blocks下单独编译该文件也没错。

现在可以啦!谢谢啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

我爱鱼C论坛 该用户已被删除
发表于 2015-2-19 20:45:47 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-19 04:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表